我正在尝试理解响应头"Vary: Accept-Encoding“。
我注意到在我们的应用程序的开发人员工具中的一些图像出现了响应头"Vary: Accept-Encoding“,但有些图像没有这个响应头。
当我试图在浏览器中点击相同的图像url时,看不到标题"Vary: Accept-Encoding“。
为什么这个标题只出现在我们的应用程序中选定的图像中?可能的可能性是什么?
发布于 2018-06-10 06:07:04
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,它应该管理代理可能想要提供的任何缓存。
https://stackoverflow.com/questions/50729915
复制相似问题