416 Range Not Satisfiable

Żądany zakres bajtów wykracza poza plik.

Kiedy go używać

Żądanie Range wykraczające poza koniec zasobu.

Typowe przyczyny i rozwiązania

Nagłówek Range prosi o bajty, których serwer nie ma, zwykle poza końcem pliku. Klasyczna przyczyna to wznawianie pobierania przez curl -C - lub wget -c, gdy lokalny plik jest już kompletny albo zdalny plik zmienił rozmiar. Serwer odpowiada z Content-Range: bytes */size, żeby klient mógł poznać rzeczywistą długość.

Naprawisz to, usuwając częściowy plik i zaczynając od nowa albo najpierw porównując rozmiary. Odtwarzacze wideo trafiają na 416, gdy plik zostanie podmieniony w trakcie odtwarzania lub CDN ma w cache starszą, krótszą wersję; wyczyść cache. Klienty powinny wysyłać If-Range z ETagiem, żeby zmieniony plik zwrócił 200 z pełną zawartością zamiast 416. Serwery mogą też zignorować Range i odpowiedzieć 200.

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 416 Range Not Satisfiable

Jak go wysłać

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

Jak go sprawdzić

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

Otwórz narzędzie Kody statusu HTTP