Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 变化:接受编码响应头_Apache_Http_Tomcat_Browser - Fatal编程技术网

Apache 变化:接受编码响应头

Apache 变化:接受编码响应头,apache,http,tomcat,browser,Apache,Http,Tomcat,Browser,我试图理解响应标题“Vary:Accept Encoding” 我注意到应用程序开发工具中的一些图像出现了响应头“Vary:Accept Encoding”,但有些图像没有此响应头 当我试图在浏览器中点击相同的图像url时,没有看到这个标题“Vary:Accept Encoding” 为什么此标题仅在应用程序中的选定图像中显示?有什么可能?Tomcat或应用程序可能返回此标题。如果Tomcat正在应用例如gzip编码,则必须使用Vary:Accept encoding进行响应,因为如果客户端未指

我试图理解响应标题“Vary:Accept Encoding”

我注意到应用程序开发工具中的一些图像出现了响应头“Vary:Accept Encoding”,但有些图像没有此响应头

当我试图在浏览器中点击相同的图像url时,没有看到这个标题“Vary:Accept Encoding”


为什么此标题仅在应用程序中的选定图像中显示?有什么可能?

Tomcat或应用程序可能返回此标题。如果Tomcat正在应用例如
gzip
编码,则必须使用
Vary:Accept encoding
进行响应,因为如果客户端未指定它支持
gzip
,则源服务器(web服务器)、代理等必须使用不同类型的数据进行响应

如果客户机请求
/myapp/something
并声明它只愿意接受编码为
gzip
的响应,那么
/myapp/something
实际上应该只返回
标识为
gzip
编码的响应,或者只返回412响应


Vary
标题实际上是用于代理的。它告诉代理,如果另一端的客户端在其请求头中有不同的
接受编码值,则可能会得到不同的响应。因此,如果两个客户端请求相同的资源,但一个说
接受编码:identity,gzip
,另一个说
接受编码:identity,compress
,那么他们(可能)会得到两个响应,代理应该明白,重要的不仅仅是URL,还有客户端的
接受编码
,该编码应控制代理可能要提供的任何缓存。

Hmm。某些图像的有效负载不会变化?不,通过查看应用程序,我看不到图像中有任何变化。我建议阅读与内容协商和压缩编码相关的RFC 7231部分。a)它始终可以返回未编码(未压缩)的变体。(b) 将“代理”替换为“缓存”-可能是客户端。。。