是否变化:接受编码矫枉过正?

jdo*_*man 25 compression proxy webserver encoding gzip

在阅读了gzip压缩如何工作后,它让我思考.如果Origin和Proxy服务器(CDN)都支持gzip是否需要添加Vary: Accept-Encoding头?

小智 24

Vary: Accept-Encoding头有更多的事情要做比缓存压缩.当Vary: Accept-Encoding标题存在时,无论客户端是否请求压缩,它都会告诉客户端文件可以缓存/是否相同.

如果由于某种原因客户端在其缓存中具有该文件的未压缩版本,则它将不知道随后再次请求其压缩版本而是仅使用来自缓存的未压缩文件.

更多信息:有什么不同:接受编码意味着什么?

  • 不指定它不违反协议.指定意味着您只需向上游代理声明,以基于接受编码请求标头维护单独的缓存.就像Kyle所说的......只需用"上游代理"(isp,企业网络等)替换"客户端".因此,您有可能向支持gzip的最终用户提供未压缩版本,反之亦然. (5认同)
  • @jdorfman请取消接受此答案。这是完全错误的。所有标头都告诉客户端,对于将来的HTTP请求,相同的Accept-Encoding规范的内容将保持不变。请参阅对所链接问题答案的评论。 (2认同)