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

16

这两个HTTP头部字段有什么区别?

  • Accept-Encoding:gzip(接受编码:gzip)
  • Content-Encoding:gzip(内容编码:gzip)

请阅读[询问]并展示你的研究。简而言之:Accept-头部告诉服务器客户端想要什么样的响应。 - CodeCaster
2个回答

25

Accept-Encoding:

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

来源MDN

Accept-Encoding 请求头部,用于指定可接受的内容编码,如gzip或compress。服务器会依据这个头部,决定是否压缩后再发送数据,并在响应头部返回实际使用的编码方式。

Content-Encoding:

这是一个响应头。HTTP服务器使用此头来告知客户端内容已经被编码的确切方式。

来源MDN

Content-Encoding 响应头部,用于指定内容编码格式,通常用于对资源进行压缩,如gzip或deflate。当这个头部存在时,它的值指示应用于实体正文的编码方式。它让客户端知道如何解码以获取Content-Type头部引用的媒体类型。

如果您想看到它们的工作过程,请在Firefox或Chrome中打开检查元素,然后检查网络选项卡以查看它们的工作原理。查找请求头中的Accept-Encoding和响应头中的Content-Encoding.

火狐浏览器中的检查元素


2

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: gzip
Vary: Accept-Encoding

https://datatracker.ietf.org/doc/html/rfc7231#section-3.1.2.2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接