400 Bad Request

Żą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 Request

Jak go wysłać

Node.js / Expressres.status(400).end()
Python / Flaskreturn '', 400
nginxreturn 400;

Jak go sprawdzić

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Otwórz narzędzie Kody statusu HTTP