【问题标题】:Is Vary: Accept-Encoding overkill?Vary: Accept-Encoding 是否矫枉过正?
【发布时间】:2013-01-10 12:28:27
【问题描述】:

在阅读了how gzip compression works 之后,我开始思考。如果源服务器和代理服务器 (CDN) 都支持 gzip 是否需要添加 Vary: Accept-Encoding 标头?

【问题讨论】:

标签: encoding proxy webserver compression gzip


【解决方案1】:

Vary: Accept-Encoding 标头更多地与缓存有关,而不是压缩。当Vary: Accept-Encoding 标头出现时,它告诉客户端该文件可以被缓存/无论客户端是否请求压缩都相同。

如果由于某种原因,客户端在其缓存中有一个未压缩版本的文件,它将知道随后不会再次请求该文件的压缩版本,而是只使用缓存中的未压缩文件。

更多:What does vary:accept-encoding mean?

【讨论】:

  • 但是指定标头不是严格安全的,还是违反协议?也许它只在 99% 的情况下有效,这还不够。
  • 不指定并不违反协议。指定意味着您只需向上游代理声明以根据接受编码请求标头维护单独的缓存。就像凯尔说的......只需用“上游代理”(isp、公司网络等)替换“客户端”。因此,您有向支持 gzip 的最终用户提供未压缩版本的风险,反之亦然。
  • @sajal 是的,违反协议是错误的术语。我的意思是“系统不能作为一个整体工作”。根据您的解释,情况似乎如此。标题不是可选的(你是对的)。
  • @jdorfman 请取消接受此回答。这是完全错误的。所有标头都在告诉客户端,对于未来 HTTP 请求的相同 Accept-Encoding 规范,内容将保持不变。请参阅 cmets 对所链接问题的答案的回复。
猜你喜欢
  • 2014-10-31
  • 2011-03-10
  • 2012-06-11
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
  • 1970-01-01
  • 2015-03-09
  • 2013-05-14
相关资源
最近更新 更多