【发布时间】:2018-02-27 03:42:09
【问题描述】:
这两个 HTTP 标头有什么区别?
- 接受编码:gzip
- 内容编码:gzip
【问题讨论】:
-
请阅读How to Ask 并展示您的研究。简而言之:
Accept-标头告诉服务器客户端想要什么样的响应。
标签: http-headers gzip content-encoding http-accept-encoding
这两个 HTTP 标头有什么区别?
【问题讨论】:
Accept- 标头告诉服务器客户端想要什么样的响应。
标签: http-headers gzip content-encoding http-accept-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
【讨论】:
这是一个请求头。 HTTP 客户端使用此标头告诉服务器它支持哪种编码。允许服务器以任何这些编码发送响应内容。
Accept-Encoding 请求 HTTP 标头通告客户端能够理解的内容编码,通常是压缩算法。使用内容协商,服务器选择一个提案,使用它并通过 Content-Encoding 响应头通知客户端它的选择。
它是一个响应头。 HTTP 服务器使用此标头告诉客户端内容实际编码的特定编码。
Content-Encoding 实体头用于压缩媒体类型。当存在时,它的值指示哪些编码应用于实体主体。它让客户端知道如何解码以获得 Content-Type 标头引用的媒体类型。
如果您想查看它们的实际运行情况,请在 Firefox / Chrome 中打开 Inspect Element,然后检查 Network 选项卡以查看它们的运行情况。在请求标头中查找Accept-Encoding,在响应标头中查找Content-Encoding。
【讨论】: