--- title: Accept-Encoding slug: Web/HTTP/Headers/Accept-Encoding tags: - Accept-Encoding - 内容协商 - 请求头 translation_of: Web/HTTP/Headers/Accept-Encoding ---
HTTP 请求头 Accept-Encoding 会将客户端能够理解的内容编码方式——通常是某种压缩算法——进行通知(给服务端)。通过内容协商的方式,服务端会选择一个客户端提议的方式,使用并在响应头 {{HTTPHeader("Content-Encoding")}} 中通知客户端该选择。
即使客户端和服务器都支持相同的压缩算法,在 identity 指令可以被接受的情况下,服务器也可以选择对响应主体不进行压缩。导致这种情况出现的两种常见的情形是:
只要 identity —— 表示不需要进行任何编码——没有被明确禁止使用(通过 identity;q=0 指令或是 *;q=0 而没有为 identity 明确指定权重值),则服务器禁止返回表示客户端错误的 {{HTTPStatus("406")}} Not Acceptable 响应。
IANA 维护了一个完整的官方支持的编码方式列表。
Header type | {{Glossary("Request header")}} |
---|---|
{{Glossary("Forbidden header name")}} | yes |
Accept-Encoding: gzip Accept-Encoding: compress Accept-Encoding: deflate Accept-Encoding: br Accept-Encoding: identity Accept-Encoding: * // Multiple algorithms, weighted with the {{Glossary("Quality Values", "quality value")}} syntax: Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5
gzip
compress
deflate
br
identity
*
;q=
(qvalues weighting)Accept-Encoding: gzip Accept-Encoding: gzip, compress, br Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1
Specification | Title |
---|---|
{{RFC("7231", "Accept-Encoding", "5.3.4")}} | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context |
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 and send us a pull request.
{{Compat("http.headers.Accept-Encoding")}}