multipart/byteranges

MIME 型 multipart/byteranges

[3] MIME型 multipart/byteranges は、範囲要求に対して複数の範囲のデータを返す時に使う構文です。

仕様書

意味

[9] multipart/byteranges の各本体部分は、 範囲要求の結果として得られたデータの各部分を表しています。

引数

[5] multipart/* の共通の boundary 引数必須です >>1

[12] boundary 引数引用文字列だと正しく扱えない実装もあります >>10

構文

[4] multipart/* の共通の構文に従っています。

[11] 前書きとして、最初の境界文字列の前にいくつか CRLF を含めることができます >>10MIME の仕様によると CRLF 以外にも境界文字列以外の任意のASCII文字列を入れることができます。

[207] 互換性については後書きの項も参照してください。

[8] 範囲要求における要件については、範囲要求の項を参照してください。

[16] 範囲単位は各本体部分Content-Range: ヘッダーで指定します。MIME型の名前は byteranges ですが、 bytes 以外の範囲単位も使えます >>10

[18] 他の multipart/* とは違って、実体本体には元のデータの一部分のみが含まれます。 Content-Type:MIME型の仕様で決められた形式を満たすとは限りません。

[19] 範囲を選択した後に実現値操作が適用されている場合は、更に圧縮などが行われているかもしれません >>20。 その場合はすべての本体部分で同じ実現値操作が適用されなければなりません >>20

処理モデル

[7] 範囲要求の項を参照してください。

CTE

[6] 内容転送符号化としては、 (multipart/* 全体の制限により) 7bit8bitbinary だけが認められています >>1

[17] 仕様上明記はされていませんが、本体部分CTE は使えないものと思われます。 MIME では意味がありますが、 HTTP では意味がありません。 実装も対応しているとは思えません。

歴史

[13] 初期の実装は multipart/x-byteranges >>14, >>15 に(のみ)対応しているかもしれません。 multipart/x-byterangesmultipart/byteranges とほぼ同じですが、違いもあります。 >>10

[2] RFC 2068・RFC 2616 (HTTP/1.1) 19.2 Internet Media Type multipart/byteranges

When an HTTP 206 (Partial Content) response message includes the content of multiple ranges (for example, a response to a request for multiple non-overlapping ranges), these are transmitted as a multipart MIME message message-body. The multipart media type for this purpose is called "multipart/byteranges".

HTTP 206 (部分内容) 応答メッセージは複数の範囲の内容を含むとき (例えば複数の重なり合わない範囲についての要求に対する応答のとき)、 各範囲は多部分 message-body で転送します。この目的の媒体型を multipart/byteranges と呼びます。

The multipart/byteranges media type includes two or more parts, each with its own Content-Type and Content-Range fields. The parts are separated using a MIME boundary parameter. The required boundary parameter specifies the boundary string used to separate each body-part.

multipart/byteranges 媒体型は2つ以上の部分を含み、 それぞれがそれぞれの Content-Type 欄と Content-Range 欄を持ちます。 必須の boundary 引数は、各本体部分を分離するために使う境界文字列を指定します。

Media Type name
multipart
Media subtype name
byteranges
Required parameters
boundary
Optional parameters
none
Encoding considerations
only "7bit", "8bit", or "binary" are permitted
Security considerations
none

For example:

HTTP/1.1 206 Partial content Content
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-modified: Wed, 15 Nov 1995 04:58:08 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-type: multipart/byteranges; boundary=THIS_STRING_SEPARATES

--THIS_STRING_SEPARATES
Content-type: application/pdf
Content-range: bytes 500-999/8000

...the first range...
--THIS_STRING_SEPARATES
Content-type: application/pdf
Content-range: bytes 7000-7999/8000

...the second range
--THIS_STRING_SEPARATES--

Notes:

  • 1) Additional CRLFs may precede the first boundary string in the entity.
  • 2) Although RFC 2046 [40] permits the boundary string to be quoted, some existing implementations handle a quoted boundary string incorrectly.
  • 3) A number of browsers and servers were coded to an early draft of the byteranges specification to use a media type of multipart/x-byteranges, which is almost, but not quite compatible with the version documented in HTTP/1.1.

注意:

  • 実体の最初の境界文字列の前に追加の CRLF が来ても構いません。
  • RFC2046 は境界文字列を引用符で囲むことを認めていますが、 既存の実装には引用符で囲まれた境界文字列を正しく扱えないものが あります。
  • 多くのブラウザはバイト範囲仕様書の古い原案の媒体型 multipart/x-byteranges を使うように符号化されていました。 この媒体型は HTTP/1.1 で文書化されている版とは完全にではありませんがほとんどは互換です。

[21] Site Isolation - The Chromium Projects () <http://www.chromium.org/Home/chromium-security/site-isolation>