Der angeforderte Byte-Bereich liegt außerhalb der Datei.
Wann du ihn verwendest
Eine Range-Anfrage über das Ende der Ressource hinaus.
Häufige Ursachen und Lösungen
Der Range-Header fordert Bytes an, die der Server nicht hat, meist jenseits des Dateiendes. Die klassische Ursache ist das Fortsetzen eines Downloads mit curl -C - oder wget -c, wenn die lokale Datei schon vollständig ist oder die Remote-Datei ihre Größe geändert hat. Der Server antwortet mit Content-Range: bytes */size, damit der Client die tatsächliche Länge erfährt.
Lösch zur Behebung die unvollständige Datei und fang neu an, oder vergleiche vorher die Größen. Videoplayer stoßen auf 416, wenn eine Datei mitten im Stream ersetzt wird oder ein CDN eine ältere, kürzere Version gecacht hat; leere den Cache. Clients sollten If-Range mit dem ETag senden, damit eine geänderte Datei 200 mit dem vollständigen Inhalt liefert statt 416. Server dürfen Range auch ignorieren und mit 200 antworten.
Client-Fehler (4xx)
4xx-Codes sind Client-Fehler: Die Anfrage selbst ist fehlerhaft, nicht autorisiert oder verweist auf etwas, das es nicht gibt. Dieselbe Anfrage erneut zu senden hilft nicht.
So sieht es aus
HTTP/1.1 416 Range Not SatisfiableSo sendest du ihn
| Node.js / Express | res.status(416).end() |
|---|---|
| Python / Flask | return '', 416 |
| nginx | return 416; |
So prüfst du ihn
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/