这两个 HTTP 标头有什么区别?
- 接受编码:gzip
- 内容编码:gzip
它是一个请求标头。HTTP 客户端使用此标头告诉服务器它支持哪种编码。允许服务器以任何这些编码发送响应内容。
Accept-Encoding 请求 HTTP 标头通告客户端能够理解的内容编码,通常是压缩算法。使用内容协商,服务器选择一个提议,使用它并使用 Content-Encoding 响应头通知客户端它的选择。
它是一个响应头。HTTP 服务器使用此标头告诉客户端内容实际编码的特定编码。
Content-Encoding 实体头用于压缩媒体类型。当存在时,它的值指示哪些编码应用于实体主体。它让客户端知道如何解码以获得 Content-Type 标头引用的媒体类型。
如果您想查看它们的实际运行情况,请Inspect Element
在 Firefox / Chrome 中打开,然后检查Network
选项卡以查看它们的运行情况。Accept-Encoding
在请求标头和Content-Encoding
响应标头中查找。
接受编码
套用 IETF 互联网标准 RFC-7231 的解释,用户代理可以使用 Accept-Encoding 请求头字段来发出请求,指示响应中可接受的响应内容编码。
Accept-Encoding 标头可能非常复杂,例如
Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0
https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.4
内容编码
Content-Encoding 响应标头字段指示已将哪些内容编码应用于响应表示。Content-Encoding 主要用于允许响应实体被压缩而不会丢失其底层媒体类型的标识。
Content-Encoding 值很简单,应该伴随一个“Vary”标题,例如
Content-Encoding: gzip
Vary: Accept-Encoding
https://datatracker.ietf.org/doc/html/rfc7231#section-3.1.2.2