{{HTTPSidebar}}
The Accept-Encoding
request HTTP header advertises which content encoding, usually a compression algorithm, the client is able to understand. Using content negotiation, the server selects one of the proposals, uses it and informs the client of its choice with the {{HTTPHeader("Content-Encoding")}} response header.
Header type | {{Glossary("Request header")}} |
---|---|
{{Glossary("Forbidden header name")}} | yes |
Syntax
Accept-Encoding: gzip Accept-Encoding: compress Accept-Encoding: deflate Accept-Encoding: br Accept-Encoding: identity Accept-Encoding: * // Multiple algorithms, weighted with the q-factor syntax: Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5
Directives
gzip
- A compression format using the Lempel-Ziv coding (LZ77), with a 32-bit CRC.
compress
- A compression format using the Lempel-Ziv-Welch (LZW) algorithm.
deflate
- A compression format using the zlib structure, with the deflate compression algorithm.
br
- A compression format using the Brotli algorithm.
identity
- Indicates the identity function (i.e. no compression, nor modification. This value is always considered as acceptable, even if not present.
*
- Matches any content encoding not already listed in the header. This is the default value if the header is not present. It doesn't mean that any algorithm is supported; merely that no preference is expressed.
;q=
(q-factor weighting)- Any value is placed in an order of preference expressed using a relative quality factor called weight.
Examples
Accept-Encoding: gzip Accept-Encoding: gzip, compress, br Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1
Specifications
Specification | Title |
---|---|
{{RFC("7231", "Accept-Encoding", "5.3.4")}} | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context |
Browser compatibility
The compatibility table in this page is generated from structured data. If you’d like to contribute to the data, please check out https://github.com/mdn/browser-compat-data/README.md and send us a pull request.
{{Compat}}
See also
- HTTP content negotiation
- Header with the result of the content negotiation: {{HTTPHeader("Content-Encoding")}}
- Other similar headers: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept-Language")}}