Żą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 SatisfiableJak go wysłać
| Node.js / Express | res.status(416).end() |
|---|---|
| Python / Flask | return '', 416 |
| nginx | return 416; |
Jak go sprawdzić
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/