--- title: Accept-Encoding slug: Web/HTTP/Headers/Accept-Encoding tags: - Content Negotiation - HTTP - HTTP Header - Reference - Request header translation_of: Web/HTTP/Headers/Accept-Encoding ---
{{HTTPSidebar}}

Accept-Encoding は HTTP のリクエストヘッダーで、コンテンツのエンコーディング、ふつうは圧縮アルゴリズムのどれをクライアントが理解することができるかを示します。 コンテンツ交渉を使用して、サーバーは提案されたものから一つを選択して使用し、 {{HTTPHeader("Content-Encoding")}} レスポンスヘッダーを使用してクライアントに選択結果を知らせます。

クライアントとサーバーが同じ圧縮アルゴリズムに対応していた場合でも、 identity の値が受け付けられる場合は、サーバーはレスポンスの本文を圧縮しないことを選択する場合があります。これには主に二つの場合があります。

identity の値、つまりエンコードをしないということは、 identity;q=0 または *;q=0identity とは別な値が明確に設定されていない限り、サーバーは{{HTTPStatus("406")}} Not Acceptable エラーを返してはいけません。

注:
ヘッダー種別 {{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}} はい

構文

Accept-Encoding: gzip
Accept-Encoding: compress
Accept-Encoding: deflate
Accept-Encoding: br
Accept-Encoding: identity
Accept-Encoding: *

// 複数のアルゴリズムを {{Glossary("Quality Values", "quality value")}} で重み付けする構文:
Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5

ディレクティブ

gzip
Lempel-Ziv coding (LZ77) と32ビット CRC を用いた圧縮形式です。
compress
Lempel-Ziv-Welch (LZW) アルゴリズムを用いた圧縮形式です。
deflate
zlib 構造体と deflate 圧縮アルゴリズムを用いた圧縮形式です。
br
Brotli アルゴリズムを用いた圧縮形式です。
identity
等価関数を示します (つまり、圧縮も変更もありません)。この値は存在しなくても、常に受け付け可能とみなされます。
*
ヘッダーに挙げられていないあらゆるコンテンツエンコーディングに一致します。これはこのヘッダーがない場合の既定値です。すべてのアルゴリズムに対応しているという意味ではありません。評価される設定がないだけです。
;q= (q 値の重みづけ)
weight と呼ばれる相対的な品質値を使用して表現される設定の順序づけをするための任意の値です。

Accept-Encoding: gzip

Accept-Encoding: gzip, compress, br

Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1

仕様書

仕様書 題名
{{RFC("7231", "Accept-Encoding", "5.3.4")}} Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context

ブラウザーの互換性

{{Compat("http.headers.Accept-Encoding")}}

関連情報