From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../web/http/headers/transfer-encoding/index.html | 113 +++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 files/ja/web/http/headers/transfer-encoding/index.html (limited to 'files/ja/web/http/headers/transfer-encoding') diff --git a/files/ja/web/http/headers/transfer-encoding/index.html b/files/ja/web/http/headers/transfer-encoding/index.html new file mode 100644 index 0000000000..4dbace4204 --- /dev/null +++ b/files/ja/web/http/headers/transfer-encoding/index.html @@ -0,0 +1,113 @@ +--- +title: Transfer-Encoding +slug: Web/HTTP/Headers/Transfer-Encoding +tags: + - HTTP + - Reference + - ヘッダー + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Transfer-Encoding +--- +
{{HTTPSidebar}}
+ +

Transfer-Encoding ヘッダーは、{{Glossary("Payload body","ペイロード本文")}}をユーザーに安全に転送するために使われる符号化方式を指定します。

+ +
HTTP/2 は HTTP 1.1 のチャンク化した転送エンコードの仕組みに対応しておらず、新規にもっと効率的な、データストリーミングの仕組みを提供しています。
+ +

Transfer-Encodingホップバイホップヘッダーであり、リソース自体ではなく、二つのノード間のメッセージに適用されます。複数ノードコネクションのそれぞれの区間は、異なる Transfer-Encoding の値を使用することがあります。コネクション全体を通してデータを圧縮したい場合は、代わりにエンドトゥエンドの {{HTTPHeader("Content-Encoding")}} ヘッダーを使用してください。

+ +

本文のない {{HTTPMethod("HEAD")}} リクエストに対するレスポンスで使われたときは、対応する {{HTTPMethod("GET")}} メッセージに適用されるであろう値を示します。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Transfer-Encoding: chunked
+Transfer-Encoding: compress
+Transfer-Encoding: deflate
+Transfer-Encoding: gzip
+Transfer-Encoding: identity
+
+// コンマで区切って複数の値を並べることができます
+Transfer-Encoding: gzip, chunked
+ +

ディレクティブ

+ +
+
chunked
+
データはチャンク (塊) の連続で送られます。この場合は {{HTTPHeader("Content-Length")}} ヘッダーが省略されます。それぞれのチャンクの先頭に現在のチャンクの長さを16進数の形式で追加し、その後で '\r\n' が続き、チャンク自体ももう一つの '\r\n' が続きます。最後のチャンクは通常のチャンクですが、長さが0であるという点が異なります。この後に、一連のエンティティのヘッダーフィールド (おそらく空) から成るトレイラーが続きます。
+
compress
+
Lempel-Ziv-Welch (LZW) アルゴリズムを使用した形式です。この値の名前はこのアルゴリズムを実装している UNIX の compress プログラムから採られました。
+ 特許問題 (2003年に期限切れ) の影響もあり、多くの UNIX ディストリビューションから compress プログラムが消滅したように、今日ではこのコンテンツ符号化方式を使用しているブラウザーはほとんどありません。
+
deflate
+
zlib 構造体 (RFC 1950 で定義) と deflate 圧縮アルゴリズム (RFC 1951 で定義) を使用します。
+
gzip
+
Lempel-Ziv coding (LZ77) と32ビット CRC を使用する形式です。これは元は UNIX の gzip プログラムの形式です。 HTTP/1.1 標準は、互換性のために、このコンテンツ符号化方式の別名としてx-gzip を解釈することにサーバーが対応することを推奨しています。
+
identity
+
恒等写像 (つまり、圧縮なし、変更なし) であることを示します。このトークンは、特に明示された場合は、常に受け付けられるとみなされます。
+
+ +

+ +

チャンク化の符号化

+ +

チャンク化の符号化は、大量のデータをクライアントに送り、リクエストが完了するまでレスポンスの合計の長さが分からない場合に便利です。例えば、巨大な HTML の表をデータベースのクエリの結果として作成したり、大きな画像を転送したりする場合などです。チャンク化されたレスポンスは以下のようになります。

+ +
HTTP/1.1 200 OK
+Content-Type: text/plain
+Transfer-Encoding: chunked
+
+7\r\n
+Mozilla\r\n
+9\r\n
+Developer\r\n
+7\r\n
+Network\r\n
+0\r\n
+\r\n
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7230", "Transfer-Encoding", "3.3.1")}}Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Transfer-Encoding")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf