Range

Range は HTTP のリクエストヘッダーで、サーバーが返すべき文書の部分を示します。1 つの Range ヘッダーで複数の部分を一度にリクエストすることができ、サーバーはこれらの範囲をマルチパートの文書で返すことができます。サーバーが範囲を送り返す場合、サーバーはレスポンスに 206 Partial Content を使用します。範囲が無効な場合、サーバは 416 Range Not Satisfiable エラーを返します。サーバーは Range ヘッダ-を無視して、文書全体を 200 のステータスコードで返すこともできます。

ヘッダー種別 リクエストヘッダー
禁止ヘッダー名 いいえ

構文

Range: <unit>=<range-start>-
Range: <unit>=<range-start>-<range-end>
Range: <unit>=<range-start>-<range-end>, <range-start>-<range-end>
Range: <unit>=<range-start>-<range-end>, <range-start>-<range-end>, <range-start>-<range-end>
Range: <unit>=-<suffix-length>

ディレクティブ

<unit>
範囲を指定する単位です。これはふつう bytes です。
<range-start>
整数値で、リクエストする範囲の先頭を指定した単位で示します。
<range-end>
整数値で、リクエストする範囲の末尾を指定した単位で示します。この値は省略可能で、省略時は文書の末尾が範囲の末尾として扱われます。
<suffix-length>
整数値で、返す長さを位でファイルの末尾からの個数を示します。

ファイルから3つの範囲をリクエストします。

Range: bytes=200-1000, 2000-6576, 19000- 

ファイルの先頭の500バイトと末尾の500バイトをリクエストします。範囲が重複した場合はサーバーがリクエストを拒否することがあります。

Range: bytes=0-499, -500 

仕様書

仕様書 状態
RFC 7233, セクション 3.1: Range Hypertext Transfer Protocol (HTTP/1.1): Range Requests

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
RangeChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE 完全対応 ありOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応

関連情報