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 7231, セクション 3.1.2.2: Content-Encoding Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
RFC 7932: Brotli Compressed Data Format Brotli 圧縮データ形式

ブラウザーの対応

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応 あり あり あり あり あり あり
br50 なし44 なし36 なし
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応 あり あり あり あり あり あり あり
br5151 なし44 なし なし5.0

関連情報

ドキュメントのタグと貢献者

このページの貢献者: hiwayama, mfuji09
最終更新者: hiwayama,