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

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
Content-EncodingChrome 完全対応 ありEdge 完全対応 ありFirefox 完全対応 ありIE 完全対応 ありOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
br
実験的非標準
Chrome 完全対応 50Edge 完全対応 15Firefox 完全対応 44IE 未対応 なしOpera 完全対応 36Safari 未対応 なしWebView Android 完全対応 51Chrome Android 完全対応 51Firefox Android 完全対応 44Opera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 完全対応 5.0

凡例

完全対応  
完全対応
未対応  
未対応
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。

関連情報