Encoding 是变化:接受编码过度吗?

Encoding 是变化:接受编码过度吗?,encoding,proxy,webserver,compression,gzip,Encoding,Proxy,Webserver,Compression,Gzip,读了这篇文章后,我开始思考。如果源服务器和代理服务器(CDN)都支持gzip,则需要添加Vary:Accept Encoding头?Vary:Accept Encoding头与缓存的关系大于压缩。当出现Vary:Accept Encoding头时,它会告诉客户端,无论客户端是否请求压缩,文件都可以缓存/相同 如果出于某种原因,客户机的缓存中有文件的未压缩版本,它将知道以后不再请求压缩版本的文件,而只使用缓存中的未压缩文件 更多信息:但没有严格安全地指定标头,还是违反了协议?也许它只在99%的情况

读了这篇文章后,我开始思考。如果源服务器和代理服务器(CDN)都支持gzip,则需要添加
Vary:Accept Encoding
头?

Vary:Accept Encoding头与缓存的关系大于压缩。当出现
Vary:Accept Encoding
头时,它会告诉客户端,无论客户端是否请求压缩,文件都可以缓存/相同

如果出于某种原因,客户机的缓存中有文件的未压缩版本,它将知道以后不再请求压缩版本的文件,而只使用缓存中的未压缩文件


更多信息:

但没有严格安全地指定标头,还是违反了协议?也许它只在99%的情况下起作用,这是不够的。不指定它并不违反协议。指定意味着u只需向上游代理声明,以基于接受编码请求头维护单独的缓存。就像凯尔说的。。。只需将“客户端”替换为“上游代理”(isp、公司网络等)。因此,您有向支持gzip的最终用户提供未压缩版本的风险,反之亦然。@sajal yes协议冲突是错误的术语。我的意思是“系统不能作为一个整体工作”。根据你的解释,情况似乎是这样的。标题不是可选的(你是对的)。@jdorfman请取消接受此答案。这显然是错误的。所有的头都告诉客户端,在将来的HTTP请求中,对于相同的接受编码规范,内容将保持不变。请参阅对所链接问题答案的评论。可能重复的