Żądanie jest zniekształcone lub nieprawidłowe.
Kiedy go używać
JSON, którego nie da się sparsować, brakujące wymagane pola, nieprawidłowe typy.
Typowe przyczyny i rozwiązania
Typowe przyczyny: błędny JSON, np. przecinek na końcu lub napisy w pojedynczych cudzysłowach, treść niezgodna z zadeklarowanym Content-Type, brak wymaganych pól albo nieprawidłowe parametry zapytania. Zanim obwinisz serwer, sprawdź dokładnie wysłane bajty przez curl -v lub podgląd payloadu żądania w zakładce Network w DevTools. Większość API wyjaśnia problem w treści odpowiedzi, więc ją przeczytaj.
Infrastruktura też generuje 400: nginx zwraca „Request Header Or Cookie Too Large”, gdy pliki cookie przepełniają large_client_header_buffers, oraz „The plain HTTP request was sent to HTTPS port”, gdy użyjesz http:// na porcie 443. Load balancery odrzucają błędne nagłówki lub wartości Host. Wyczyszczenie plików cookie witryny naprawia wiele błędów 400 występujących tylko w przeglądarce. Na własnym serwerze zostaw 400 dla danych, których nie da się sparsować, a przy nieudanej walidacji używaj 422.
Błąd klienta (4xx)
Kody 4xx to błędy klienta: samo żądanie jest błędne, nieautoryzowane albo wskazuje na coś, czego nie ma. Ponowienie tego samego żądania nic nie da.
Jak to wygląda
HTTP/1.1 400 Bad RequestJak go wysłać
| Node.js / Express | res.status(400).end() |
|---|---|
| Python / Flask | return '', 400 |
| nginx | return 400; |
Jak go sprawdzić
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/