Content-Encoding
Content-Encoding
エンティティヘッダーは、圧縮のメディア種別に使用します。存在する場合、値はエンティティ本体にどのエンコーディングが適用されているかを示します。これはクライアントに、 Content-Type
ヘッダーで参照されるメディア種別を得るためにデコードする方法を知らせます。
可能な限りデータを圧縮してこのフィールドを使用することを推奨しますが、 JPEG 画像などの一部のリソースは、すでに圧縮されています。時には、さらに圧縮をしても長さが短縮されないどころか、かえって長くなることもあります。
ヘッダー種別 | エンティティヘッダー |
---|---|
禁止ヘッダー名 | いいえ |
構文
Content-Encoding: gzip Content-Encoding: compress Content-Encoding: deflate Content-Encoding: identity Content-Encoding: br // 複数の場合、適用された順序 Content-Encoding: gzip, identity Content-Encoding: deflate, gzip
ディレクティブ
gzip
-
Lempel-Ziv coding (LZ77) を使用し、32 ビットの CRC が付いた形式です。これは UNIX の gzip プログラムの独自形式です。 HTTP/1.1 標準は、この Content-Encoding に対応するサーバーは、互換性の面から
x-gzip
もエイリアスとして解釈するよう推奨しています。 compress
-
Lempel-Ziv-Welch (LZW) アルゴリズムを使用した形式です。この値の名前は、このアルゴリズムを実装している UNIX の compress プログラムから取られました。特許問題 (2003 年に期限切れ) を一因として、 compress プログラムが多くの UNIX ディストリビューションから削除されたのと同様に、この Content-Encoding は現在では多くのブラウザーから削除されています。
deflate
-
zlib 構造 (RFC 1950 で定義) の deflate 圧縮アルゴリズム (RFC 1951 で定義) を使用します。
identity
-
等価関数 (つまり、圧縮も変更もなし) を示します。このトークンは、明示的に指定された場合を除き、常に受け入れられます。
br
-
Brotli アルゴリズムを使用した形式です。
例
gzip での圧縮
クライアント側では、送信で使用してほしい圧縮方式のリストを HTTP 要求で示すことができます。 Accept-Encoding
ヘッダーを使用して、コンテンツのエンコード方式の交渉が行われます。
Accept-Encoding: gzip, deflate
サーバーは応答に使用したエンコード方式を、 Content-Encoding
レスポンスヘッダーで示します。
Content-Encoding: gzip
なお、サーバーはどの圧縮方式も使用することを義務づけられていません。圧縮はサーバー設定や使用しているサーバーモジュールに強く依存します。
仕様書
仕様書 | 題名 |
---|---|
RFC 7932: Brotli Compressed Data Format | Brotli 圧縮データ形式 |
RFC 7231, セクション 3.1.2.2: Content-Encoding | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |
RFC 2616, セクション 14.11: Content-Encoding | Content-Encoding |
ブラウザーの互換性
BCD tables only load in the browser