【问题标题】:Accept-Encoding:gzip and Content-Encoding:gzip接受编码:gzip 和内容编码:gzip
【发布时间】:2018-02-27 03:42:09
【问题描述】:

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

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

【问题讨论】:

标签: http-headers gzip content-encoding http-accept-encoding


【解决方案1】:

接受编码

用 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

【讨论】:

    【解决方案2】:

    接受编码:

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

    From MDN

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

    内容编码:

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

    From MDN

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

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

    【讨论】:

      猜你喜欢
      • 2015-01-17
      • 2014-10-09
      • 2017-03-16
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      • 2019-05-25
      • 2015-07-21
      • 1970-01-01
      相关资源
      最近更新 更多