Content-Encoding HTTPヘッダー — gzip、br、deflate
Content-EncodingとAccept-Encoding HTTPヘッダーを理解します。ブラウザとサーバーがWebリソースの圧縮をネゴシエートする方法を学びます。
HTTP & Protocols
詳細な説明
Content-Encoding:HTTPでの圧縮の仕組み
HTTPプロトコルは、各レスポンスで使用する圧縮アルゴリズムを決定するためのネゴシエーションメカニズムを使用します。
ネゴシエーションフロー
- クライアントが送信:
Accept-Encoding: gzip, deflate, br - サーバーが圧縮:サポートされるアルゴリズムを使用
- サーバーが応答:
Content-Encoding: gzip - クライアントが解凍:自動的に実行
重要なヘッダー
Vary: Accept-Encodingヘッダーは重要です。CDNやプロキシに対して、エンコーディングごとに別バージョンをキャッシュするよう指示します。
よくある落とし穴
- Varyヘッダーの欠落:CDNキャッシュポイズニングの原因
- 二重圧縮:既に圧縮されたコンテンツの圧縮はCPUの無駄
- HTTPS上の圧縮:BREACH攻撃に注意が必要
ユースケース
Webサーバー設定、CDNセットアップ、圧縮問題のデバッグ。nginx、Apache、Cloudflareなどのリバースプロキシを正しく設定するために必須の知識です。