The Content-Encoding
entity header is used compress the media-type. When present, its value indicates what additional content encoding has been applied to the entity-body. It lets the client know, how to decode in order to obtain the media-type referenced by the Content-Type
header.
Header type | {{Glossary("Entity header")}} |
---|---|
{{Glossary("Forbidden header name")}} | no |
Syntax
Content-Encoding: gzip Content-Encoding: compress Content-Encoding: deflate Content-Encoding: identity Content-Encoding: br
Directives
gzip
- A format using the Lempel-Ziv coding (LZ77), with a 32-bit CRC. This is originally the format of the UNIX gzip program. The HTTP/1.1 standard also recommends that the servers supporting this content-encoding should recognize
x-gzip
as an alias, for compatibility purposes. compress
- A format using the Lempel-Ziv-Welch (LZW) algorithm. The value name was taken from the UNIX compress program, which implemented this algorithm.
Like the compress program, which has disappeared from most UNIX distributions, this content-encoding is used by almost no browsers today, partly because of a patent issue (which expired in 2003). deflate
- Using the zlib structure (defined in RFC 1950), with the deflate compression algorithm (defined in RFC 1951).
identity
- Indicates the identity function (i.e. no compression, nor modification). This token, except if explicitly specified, is always deemed acceptable.
- br
- A format using the Brotli algorithm.
Examples
Compressing with gzip
On the client side, you can advertise a list of compression schemes that will be send along in an HTTP request. The {{HTTPHeader("Accept-Encoding")}} header is used for negotiating content encoding.
Accept-Encoding: gzip, deflate
The server responds with the scheme used, indicated by the Content-Encoding
response header.
Content-Encoding: gzip
Note that the server is not obligated to use any compression method. Compression highly depends on server settings and used server modules.
Specifications
Specification | Title |
---|---|
{{RFC("7231", "Content-Encoding", "3.1.2.2")}} | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |
Browser compatibility
To contribute to this compatibility data, please write a pull request against this file: https://github.com/mdn/browser-compat-data/blob/master/http/headers.json.
{{Compat}}
See also
- {{HTTPHeader("Accept-Encoding")}}
- {{HTTPHeader("Transfer-Encoding")}}