我正在尝试理解响应Header“Vary:Accept-Encoding”。
我注意到应用程序的开发人员工具中的某些图像显示响应标题“Vary:Accept-Encoding”,但有些图像没有此响应标头。
当我尝试在浏览器中点击相同的图片网址时,看不到此标题“Vary:Accept-Encoding”。
为什么此标题仅出现在我们的应用程序中的选定图像中?可能有什么可能性?
答案 0 :(得分:0)
Tomcat或应用程序可以返回此标头。如果Tomcat正在申请,例如gzip
编码,然后必须使用Vary: Accept-Encoding
进行响应,因为如果客户端未指定它支持gzip
,那么原始服务器(Web服务器),代理等必须用不同类型的数据回复。
如果客户请求/myapp/something
并宣称它只愿意接受编码为gzip
的回复,那么/myapp/something
应该只返回identity
中的回复或gzip
编码,或回复412回复。
Vary
标题实际上是代理服务器。它告诉代理,如果另一方的客户端在其请求标头中具有不同的Accept-Encoding
值,则它们可能会得到不同的响应。因此,如果两个客户端请求相同的资源,但其中一个说Accept-Encoding: identity,gzip
而另一个说Accept-Encoding: identity,compress
,则他们(可能)会得到两个响应,并且代理应该理解它不仅仅是URL重要的是,还客户端的Accept-Encoding
,它应该管理代理可能想要提供的任何缓存。