Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. HTTP
  3. Reference
  4. Headers
  5. Range

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

Range header

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.

Der HTTP-Range-Request-Header gibt den Teil einer Ressource an, den der Server zurückgeben soll. Mehrere Teile können gleichzeitig in einemRange-Header angefordert werden, und der Server kann diese Bereiche in einem Mehrfachdokument zurücksenden. Wenn der Server Bereiche zurücksendet, verwendet er den Statuscode206 Partial Content für die Antwort. Wenn die Bereiche ungültig sind, gibt der Server den Fehler416 Range Not Satisfiable zurück.

Ein Server, der Bereichsanfragen nicht unterstützt, kann denRange-Header ignorieren und die gesamte Ressource mit dem Statuscode200 zurückgeben. Ältere Browser verwendeten einen Antwort-Header vonAccept-Ranges: none, um Funktionen wie „Pause“ oder „Fortsetzen“ in Download-Managern zu deaktivieren. Da ein Server, der denRange-Header ignoriert, die gleiche Bedeutung hat wie eine Antwort mitAccept-Ranges: none, wird dieser Header selten auf diese Weise verwendet.

Derzeit sind nurbytes Einheiten registriert, dieOffset sind (Null-Indizierung & inklusive). Wenn die angeforderten Daten eineContent-Coding angewendet haben, repräsentiert jeder Byte-Bereich die kodierte Sequenz von Bytes, nicht die Bytes, die nach der Dekodierung erhalten würden.

Der Header ist einCORS-safelisted request header, wenn die Direktive einen einzelnen Byte-Bereich spezifiziert.

Header-TypRequest-Header
Verbotener Request-HeaderNein

Syntax

http
Range: <unit>=<range-start>-Range: <unit>=<range-start>-<range-end>Range: <unit>=<range-start>-<range-end>, …, <range-startN>-<range-endN>Range: <unit>=-<suffix-length>

Direktiven

<unit>

Die Einheit, in der die Bereiche definiert sind. Derzeit sind nurbytes eine registrierte Einheit.

<range-start>

Eine Ganzzahl in der angegebenen Einheit, die die Startposition des Anforderungsbereichs angibt.

<range-end>

Eine Ganzzahl in der angegebenen Einheit, die die Endposition des angeforderten Bereichs angibt. Dieser Wert ist optional, und wenn er weggelassen wird, wird das Ende der Ressource als Endpunkt des Bereichs verwendet.

<suffix-length>

Eine Ganzzahl, die die Anzahl der Einheiten am Ende der Ressource angibt, die zurückgegeben werden sollen.

Beispiele

Die folgenden Beispiele zeigen, wie Anfragen mit demRange-Header für CORS-safelisted-Anfragen und das Anfordern mehrerer Bereiche gestellt werden. Weitere Beispiele finden Sie imLeitfaden zu HTTP-Bereichsanfragen.

Einzelne Byte-Bereiche und CORS-safelisted-Anfragen

DerRange-Header ist einCORS-safelisted request header, wenn der Wert ein einzelner Byte-Bereich ist. Dies bedeutet, dass er in Cross-Origin-Anfragen verwendet werden kann, ohne einePreflight-Anfrage auszulösen, was nützlich ist, um Medien anzufordern und Downloads fortzusetzen.

Das folgende Beispiel fordert die ersten 500 Bytes einer Ressource an:

http
Range: bytes=0-499

Um die zweiten 500 Bytes anzufordern:

http
Range: bytes=500-999

Das Weglassen der Endposition fordert alle verbleibenden Einheiten der Ressource an, sodass die letzten 100 Bytes einer Ressource mit einer Länge von 1000 Bytes wie folgt angefordert werden können:

http
Range: bytes=900-

Alternativ können die letztenn Bytes einer Ressource mit einer unbekannten Größe mit einem Suffixbereich von-n angefordert werden:

http
Range: bytes=-100

Anfordern mehrerer Bereiche

Angenommen, eine Ressource hat eine Länge von 10.000 Bytes, fordert das folgende Beispiel drei separate Bereiche an;200-999 (800 Bytes),2000-2499 (500 Bytes) und schließlich9500-. Der Bereichs-Spezifizierungswert9500- lässt eine Endposition weg, was anzeigt, dass alle Bytes ab 9500 Teil des dritten Bereichs (500 Bytes) sind.

http
Range: bytes=200-999, 2000-2499, 9500-

Dieses Beispiel fordert die ersten 500 und letzten 500 Bytes der Datei an. Die Anfrage kann vom Server abgelehnt werden, wenn sich diese Bereiche überschneiden (wenn die angeforderte Ressource beispielsweise weniger als 1000 Bytes lang war).

http
Range: bytes=0-499, -500

Überprüfen, ob ein Server Bereichsanfragen unterstützt

Der folgende Curl-Befehl macht eineHEAD-Anfrage für ein Bild:

bash
curl -v --http1.1 -I https://i.imgur.com/z4d4kWk.jpg# or using the OPTIONS method:# curl -v --http1.1 -X OPTIONS https://i.imgur.com/z4d4kWk.jpg

Dies führt zur folgenden HTTP-Anfrage:

http
HEAD /z4d4kWk.jpg HTTP/1.1Host: i.imgur.comUser-Agent: curl/8.7.1Accept: */*

Der Server antwortet mit einer200-Antwort, und derAccept-Ranges: bytes-Header ist vorhanden (einige Header wurden der Kürze halber weggelassen):

http
HTTP/1.1 200 OKConnection: keep-aliveContent-Length: 146515Content-Type: image/jpeg…Accept-Ranges: bytes

Abrufen eines Bereichs von einer Blob-URL

Dieblob:-URL unterstützt auch Bereichsanfragen unter Verwendung vonfetch().

js
const blob = new Blob(["Hello, world!"], { type: "text/plain" });const url = URL.createObjectURL(blob);fetch(url, {  headers: {    Range: "bytes=7-11",  },})  .then((response) => response.text())  .then((text) => console.log(text)); // "world"

Spezifikationen

Specification
HTTP Semantics
# field.range

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp