Transfer-Encoding
概要
Transfer-Encodingとは、HTTPヘッダのフィールド(項目)の一つで、本体(ボディ)として送信するデータの格納形式(圧縮やチャンクなど)を伝達するもの。コンテンツの長さが決まっていないストリーミング配信などで用いられる。HTTPはWebサーバとWebクライアント(Webブラウザなど)の間でデータの伝送を行なう通信規約(プロトコル)の一つで、通信の制御情報を前半部のHTTPヘッダに記述し、後半のHTTPボディが伝送内容の本体を表す。ヘッダは改行区切りのテキスト(文字)形式で「項目名: 値(改行)」という記法で設定を列挙する。
Transfer-Encodingはサーバからクライアントへの応答であるHTTPレスポンスで用いられるヘッダ項目の一つで、伝送時にコンテンツの圧縮などを行う場合に、どのような伝送形式なのかを知らせるもの。一対のホスト間(Webサーバ-プロキシサーバ間やプロキシ-クライアント間など)の転送で有効なヘッダであり、区間ごとに異なる値が与えられる場合がある。
設定値として、元のデータから特に変更がない場合は「identity」を、動的に圧縮して伝送する場合は「compress」(LZW圧縮)、「gzip」(gzip形式のLZ77圧縮)、「deflate」(zlib形式のDeflate圧縮)のいずれかを指定する。
「chunked」はデータ本体を「チャンク」(chunk)というかたまりに区切って連続的に送信する方式で、Content-Lengthによるデータ長の指定は不要である。送信開始時点で終わりが決まっていないストリーミング配信などで用いられる。HTTP/2では廃止され、代わりにデータフレームという仕組みが用いられる。
(2023.5.12更新)