413 Content Too Large

Treść żądania jest większa, niż serwer akceptuje.

Kiedy go używać

Przesyłane pliki przekraczające limit rozmiaru.

Typowe przyczyny i rozwiązania

Treść jest większa, niż pozwala któraś warstwa, i często nie jest to Twoja aplikacja. nginx domyślnie ustawia client_max_body_size na 1m, więc przesyłanie plików powyżej 1 MB kończy się 413, dopóki nie zwiększysz limitu w bloku http, server lub location. Cloudflare ogranicza treść żądań do 100 MB w planach Free i Pro, AWS API Gateway do 10 MB, a synchroniczne payloady Lambdy do 6 MB.

Potem sprawdź aplikację: express.json w Expressie ma domyślnie limit 100kb, a PHP ma upload_max_filesize (domyślnie 2M) i post_max_size (8M). Pamiętaj o przeładowaniu nginx lub PHP-FPM po zmianie limitów. Duże pliki przesyłaj bezpośrednio do object storage przez presigned URL-e albo dziel je na części, zamiast podnosić każdy limit po drodze.

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 413 Content Too Large

Jak go wysłać

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

Jak go sprawdzić

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

Otwórz narzędzie Kody statusu HTTP