变化:接受编码响应标头

时间:2018-06-06 21:31:55

标签: apache http tomcat browser

我正在尝试理解响应Header“Vary:Accept-Encoding”。

我注意到应用程序的开发人员工具中的某些图像显示响应标题“Vary:Accept-Encoding”,但有些图像没有此响应标头。

当我尝试在浏览器中点击相同的图片网址时,看不到此标题“Vary:Accept-Encoding”。

为什么此标题仅出现在我们的应用程序中的选定图像中?可能有什么可能性?

1 个答案:

答案 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,它应该管理代理可能想要提供的任何缓存。