メインコンテンツまでスキップ

1. はじめに (Introduction)

ハイパーテキスト転送プロトコル (HTTP) のクライアントは、リクエストの取り消しや接続の切断の結果として、途中で中断されたデータ転送にしばしば遭遇する。クライアントが部分的な表現を保存している場合、表現全体を転送するのではなく、後続のリクエストでその表現の残りを要求することが望ましい。同様に、ローカルストレージが限られたデバイスは、より大きな表現の一部だけを要求できると都合がよい場合がある。例えば非常に大きな文書の 1 ページや、埋め込み画像の寸法などである。

本文書は、HTTP/1.1 の範囲リクエスト、部分応答 (partial responses)、および multipart/byteranges メディアタイプを定義する。範囲リクエストは HTTP の任意 (OPTIONAL) の機能であり、この機能を実装していない (または対象リソースに対してサポートしていない) 受信者が、相互運用性に影響を与えずに通常の GET リクエストとして応答できるように設計されている。部分応答は、この機能を実装していない可能性のあるキャッシュによって完全な応答と取り違えられないよう、独立したステータスコードで示される。

範囲リクエストの仕組みは拡張可能な範囲タイプを許すよう設計されているが、本仕様が定義するのはバイト範囲のリクエストのみである。

1.1 適合性とエラー処理 (Conformance and Error Handling)​

本文書におけるキーワード "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"MAY"、および "OPTIONAL" は、[RFC2119] に記述されているとおりに解釈されるものとする。

適合性の基準、およびエラー処理に関する考慮事項は、[RFC7230] の 2.5 節で定義されている。

1.2 構文記法 (Syntax Notation)​

本仕様は、[RFC5234] の拡張バッカス・ナウア記法 (Augmented Backus-Naur Form, ABNF) と、[RFC7230] の 7 節で定義されているリスト拡張を使用する。この拡張は、'#' 演算子を用いてカンマ区切りのリストを簡潔に定義することを可能にする ('*' 演算子が繰り返しを表すのと同様である)。付録 C は、他の文書からインポートされた規則を記述する。付録 D は、すべてのリスト演算子を標準の ABNF 記法に展開した、収集された文法を示す。