Transfer-Encoding vs Content-Encoding
Transfer-EncodingとContent-Encodingの違いを理解します。チャンク転送エンコーディングとgzip圧縮の相互作用を学びます。
HTTP & Protocols
詳細な説明
Transfer-Encoding vs Content-Encoding
この2つのHTTPヘッダーはよく混同されますが、根本的に異なる目的を持っています。
Content-Encoding:ペイロードについて
Content-Encodingはリソース自体に適用された変換を記述します。エンドツーエンドヘッダーです。
Transfer-Encoding:トランスポートについて
Transfer-Encodingはメッセージボディが転送のためにどのようにフォーマットされるかを記述します。ホップバイホップヘッダーです。
相互作用
レスポンスは両方を同時に使用できます:
Content-Encoding: gzip
Transfer-Encoding: chunked
これは元のリソースがgzip圧縮され、圧縮されたバイトがチャンクで送信されることを意味します。
主な違いのまとめ
| 側面 | Content-Encoding | Transfer-Encoding |
|---|---|---|
| 目的 | リソース変換 | 転送フォーマット |
| スコープ | エンドツーエンド | ホップバイホップ |
| 一般的な値 | gzip、br | chunked |
| キャッシュされるか | はい | いいえ |
ユースケース
curl、Wireshark、ブラウザDevToolsでのHTTP圧縮問題のデバッグ。圧縮が動作しない理由やContent-Lengthが欠落している理由の診断に役立ちます。