PHANTOM
🇮🇳 IN

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Content-Encoding ヘッダー

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.

* Some parts of this feature may have varying levels of support.

Content-Encoding表現ヘッダーで、リソースに適用されたエンコード方式とその順序を示します。 これにより、受信側はデータをどのようにデコードすれば、Content-Type ヘッダーで指定された元のコンテンツ形式を取得できるかを把握できます。 コンテンツのエンコード方式は、主に元のメディア形式に関する情報を失うことなくメッセージデータを圧縮するために使用されます。

サーバーは可能な限りデータを圧縮し、適切な場合にはコンテンツエンコーディングを使用すべきです。 .zip や .jpeg などの既に圧縮されたメディア形式をさらに圧縮すると、ファイルサイズが増加する可能性があるため、通常は適切ではありません。 元のメディアが既にエンコードされている場合(例えば .zip ファイルとして)、この情報は Content-Encoding ヘッダーには含まれません。

Content-Encoding ヘッダーが存在する場合、他のメタデータ(例:Content-Length)は、明示的に指定されていない限り、元のリソースではなくデータのエンコードされた形式のものを表します。 コンテンツエンコード形式と Transfer-Encoding との違いは、Transfer-Encoding が HTTP メッセージ自体のネットワーク上での配信方法をホップバイホップで処理するという点です。

ヘッダー種別 表現ヘッダー
禁止リクエストヘッダー いいえ

構文

http
Content-Encoding: gzip
Content-Encoding: compress
Content-Encoding: deflate
Content-Encoding: br
Content-Encoding: zstd
Content-Encoding: dcb
Content-Encoding: dcz

// 複数の場合、適用された順序
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 アルゴリズム構造を使用した形式です(RFC 7932 で定義されています)。

zstd

Zstandard アルゴリズム構造を使用した形式です(RFC 8878 で定義されています)。

dcb Experimental

圧縮辞書 Brotli アルゴリズムを使用した形式です。圧縮辞書転送を参照してください。

dcz Experimental

圧縮辞書 Zstandard アルゴリズムを使用した形式です。圧縮辞書転送を参照してください。

gzip での圧縮

クライアント側では、送信で使用してほしい圧縮方式のリストを HTTP リクエストで示すことができます。 Accept-Encoding ヘッダーを使用して、コンテンツのエンコード方式の交渉が行われます。

http
Accept-Encoding: gzip, deflate

サーバーは使用した方式を、 Content-Encoding レスポンスヘッダーで応答します。

http
Content-Encoding: gzip

なお、サーバーはどの圧縮方式も使用することを義務づけられていません。圧縮はサーバー設定や使用しているサーバーモジュールに強く依存します。

仕様書

Specification
HTTP Semantics
# field.content-encoding

ブラウザーの互換性

関連情報