414 URI Too Long

URL jest dłuższy, niż serwer jest w stanie obsłużyć.

Kiedy go używać

Ogromne query stringi. Przenieś dane do treści żądania POST.

Typowe przyczyny i rozwiązania

URL żądania przekracza limit. Typowe powody: ogromne query stringi budowane z filtrów lub list ID, dane base64 w URL-u, pętle przekierowań, które w każdej rundzie dopisują parametr (returnUrl zagnieżdżony w returnUrl), oraz nagromadzone parametry śledzące. nginx odpowiada 414, gdy linia żądania nie mieści się w large_client_header_buffers, domyślnie 8k, a LimitRequestLine w Apache to 8190 bajtów.

Dla bezpieczeństwa trzymaj URL-e poniżej ok. 2000 znaków, żeby działały w przeglądarkach, CDN-ach, narzędziach analitycznych i narzędziach do logów; Cloudflare ogranicza URL-e do 16 KB. Rozwiązaniem jest przeniesienie danych do treści POST albo wysłanie filtra do endpointu wyszukiwania, który zwraca krótkie ID do umieszczenia w URL-u. Podniesienie limitów serwera działa, ale każde proxy w łańcuchu ma własny limit.

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 414 URI Too Long

Jak go wysłać

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

Jak go sprawdzić

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

Otwórz narzędzie Kody statusu HTTP