在线文档教程

Accept-Encoding

Accept-Encoding

Accept-Encoding请求的 HTTP 标头通告其内容编码,通常是一个压缩算法中,客户端是能够理解的。使用内容协商,服务器选择其中一个提议,使用它并通过Content-Encoding响应头向客户端通知其选择。

即使客户端和服务器都支持相同的压缩算法,如果身份值也可以接受,服务器可能会选择不压缩响应的主体。两种常见情况导致这种情况:

  • 要发送的数据已经被压缩,并且第二次压缩不会导致传输更小的数据。这可能是一些图像格式的情况;

  • 服务器过载并且无法承受由压缩需求引起的计算开销。通常,如果服务器使用80%以上的计算能力,Microsoft 建议不要进行压缩。

只要该identity值(即没有编码)没有被明确禁止,通过一个identity;q=0或一个*;q=0没有明确设定的身份值,服务器就不能发回406 Not Acceptable错误。

注:

  • 另外两个内容编码,bzip并且bzip2,有时使用,虽然不是标准。他们实现这两个 UNIX 程序使用的算法。请注意,由于专利许可问题,第一个中断。

Header typeRequest header
Forbidden header nameyes

语法

Accept-Encoding: gzip Accept-Encoding: compress Accept-Encoding: deflate Accept-Encoding: br Accept-Encoding: identity Accept-Encoding: * // Multiple algorithms, weighted with the quality value syntax: Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5

指令

gzip使用 Lempel-Ziv 编码( LZ77 )的压缩格式,带有32位 CRC 。

例子

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

规范

SpecificationTitle
RFC 7231, section 5.3.4: Accept-EncodingHypertext Transfer Protocol (HTTP/1.1): Semantics and Context

浏览器兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)

FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)