Content-Encoding
Content-Encoding
は表現ヘッダーで、表現(メッセージの内容)に適用されているエンコード方式とその順番を保持しています。
これによって受信者は、元の内容の形式を取得するために、その表現をデコードする方法を知ることができます。
コンテンツのエンコード方式は、主に元のメディア形式に関する情報を失うことなくメッセージデータを圧縮するために使用されます。
元のメディア/コンテンツの形式は Content-Type
ヘッダーで指定し、 Content-Encoding
はデータの表現、つまり「コード化形式」に適用されることに注意してください。元のメディアが何らかの方法でエンコードされている場合(zip ファイルなど)、この情報は Content-Encoding
ヘッダーには含まれません。
可能な限りデータを圧縮してこのフィールドを使用することを推奨しますが、 JPEG 画像などの一部のリソースは、すでに圧縮されています。時には、さらに圧縮をしても長さが短縮されないどころか、かえって長くなることもあります。
構文
Content-Encoding: gzip
Content-Encoding: compress
Content-Encoding: deflate
Content-Encoding: br
// 複数の場合、適用された順序
Content-Encoding: deflate, gzip
ディレクティブ
gzip
-
Lempel-Ziv coding (LZ77) を使用し、32 ビットの CRC が付いた形式です。これは UNIX の gzip プログラムの独自形式です。 HTTP/1.1 標準は、このエンコード方式に対応するサーバーは、互換性の面から
x-gzip
もエイリアスとして解釈するよう推奨しています。 compress
-
Lempel-Ziv-Welch (LZW) アルゴリズムを使用した形式です。この値の名前は、このアルゴリズムを実装している UNIX の compress プログラムから取られました。このエンコード方式は、特許問題(2003 年に期限切れ)を一因として、 compress プログラムが多くの UNIX ディストリビューションから削除されたのと同様に、現在では多くのブラウザーから削除されています。
deflate
-
zlib 構造(RFC 1950 で定義)の deflate 圧縮アルゴリズム(RFC 1951) で定義)を使用します。
br
非標準-
Brotli アルゴリズムを使用した形式です。
例
gzip での圧縮
クライアント側では、送信で使用してほしい圧縮方式のリストを HTTP リクエストで示すことができます。 Accept-Encoding
ヘッダーを使用して、コンテンツのエンコード方式の交渉が行われます。
Accept-Encoding: gzip, deflate
サーバーは使用した方式を、 Content-Encoding
レスポンスヘッダーで応答します。
Content-Encoding: gzip
なお、サーバーはどの圧縮方式も使用することを義務づけられていません。圧縮はサーバー設定や使用しているサーバーモジュールに強く依存します。
仕様書
Specification |
---|
HTTP Semantics # field.content-encoding |
ブラウザーの互換性
BCD tables only load in the browser