13

这两个 HTTP 标头有什么区别?

  • 接受编码:gzip
  • 内容编码:gzip
4

2 回答 2

23

接受编码:

它是一个请求标头。HTTP 客户端使用此标头告诉服务器它支持哪种编码。允许服务器以任何这些编码发送响应内容。

来自 MDN

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

内容编码:

它是一个响应头。HTTP 服务器使用此标头告诉客户端内容实际编码的特定编码。

来自 MDN

Content-Encoding 实体头用于压缩媒体类型。当存在时,它的值指示哪些编码应用于实体主体。它让客户端知道如何解码以获得 Content-Type 标头引用的媒体类型。

如果您想查看它们的实际运行情况,请Inspect Element在 Firefox / Chrome 中打开,然后检查Network选项卡以查看它们的运行情况。Accept-Encoding在请求标头和Content-Encoding响应标头中查找。

在Firefox中检查元素

于 2017-09-18T14:47:03.767 回答
0

接受编码

套用 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

于 2021-12-14T12:24:40.450 回答