Chrome的缓存是否支持HTTP Vary标头?对于特定的URL请求,服务器响应两个不同的html文件,具体取决于它是否是ajax请求。所以我将Vary标头添加到X-Requested-With。我希望Chrome能够记录两个缓存条目,但似乎并非如此。我总是得到第一个请求的缓存命中。这是正常行为吗?
感谢。
答案 0 :(得分:2)
记录。我无法在Chrome中使用带有X-Requested-With的HTTP Vary标头。 Chrome在缓存时没有考虑HTTP Vary标头。因此缓存命中始终返回相同的内容。
作为一种解决方法,我只在使用ajax执行请求时添加了一个问题字符串(例如?ajax = 1)。
例: http://localhost/myrequest.php http://localhost/myrequest.php?ajax=1
这样,Chrome就会存储两个缓存条目,一个包含ajax,另一个没有。
答案 1 :(得分:0)
这似乎是Chrome中的错误。当使用Vary标头计算其缓存键时,Chrome似乎执行区分大小写的查找,因为该标头以小写形式存储,所以该方法不起作用。
在您的示例中,Chrome正在寻找X-Requested-With。如果您更改x-requested-with的Vary标头的值,它应该可以工作。
编辑: 我真的弄错了。也许我缺乏睡眠。使用小写的标头名称也不起作用。抱歉。