Bereichsanfragen

Eine Bereichsanfrage fügt einem GET-Request einen Range-Header wie z. B. `bytes=0-1023` hinzu. Ein Server, der Bereiche unterstützt, antwortet mit dem Statuscode 206 (Teilinhalt) und gibt die angeforderten Bytes sowie einen Content-Range-Header zurück, der den jeweiligen Teil des Ganzen angibt. Server signalisieren ihre Unterstützung mit `Accept-Ranges: bytes`; Server, die diesen Header ignorieren, geben die gesamte Ressource mit dem Statuscode 200 zurück.

So funktioniert es

Downloadmanager setzen eine unterbrochene Übertragung fort, indem sie Bytes=<empfangen> anfordern; Videoplayer fordern den Bereich um die vom Betrachter anvisierte Position an; große Dateien können in parallelen Teilen heruntergeladen werden. Ein Bereich, den der Server nicht abdecken kann – beispielsweise außerhalb des Ressourcenendes oder aufgrund eines fehlerhaften Formats – führt zum Fehlercode 416 (Bereich nicht auflösbar).

Das Missverständnis

Eine Antwort vom Typ 200 auf eine Bereichsanfrage ist ein Fehler. Es handelt sich um eine gültige Antwort, die bedeutet, dass der Server keine Bereichsanfragen unterstützt. Ein Client muss beides verarbeiten und darf keinen vollständigen Anfragetext an einen Teildownload anhängen, von dem er annimmt, dass er fortgesetzt wird.

Probieren Sie es hier aus

GET /storage/v1/objects/{key} akzeptiert Range: bytes=start-end, antwortet mit 206 bei einem Ausschnitt, mit 416 bei einem Bereich, der über das Ende hinausgeht oder fehlerhaft ist, und mit 200 bei dem gesamten Objekt, wenn kein Bereich gesendet wird.

Quellen

Weitere Begriffe

Diese Seite auf Englisch lesen

Alle Glossarbegriffe · Testtechniken · Alle 39 Mock-REST-APIs

Zuletzt aktualisiert