--- title: Transfer-Encoding slug: Web/HTTP/Headers/Transfer-Encoding tags: - HTTP - Reference - ヘッダー - レスポンスヘッダー translation_of: Web/HTTP/Headers/Transfer-Encoding ---
Transfer-Encoding
ヘッダーは、{{Glossary("Payload body","ペイロード本文")}}をユーザーに安全に転送するために使われる符号化方式を指定します。
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
\r\n
' が続き、チャンク自体ももう一つの '\r\n
' が続きます。最後のチャンクは通常のチャンクですが、長さが0であるという点が異なります。この後に、一連のエンティティのヘッダーフィールド (おそらく空) から成るトレイラーが続きます。compress
deflate
gzip
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")}}