Chrome的缓存支持HTTP Vary报头吗?对于一个特定的url请求,服务器响应两个不同的html文件,这取决于它是否是一个ajax请求。因此,我向X-Requested With添加了Vary标头。我原以为Chrome会记录两个缓存条目,但事实似乎并非如此。我发出的第一个请求总是得到缓存命中。这是正常行为吗?
谢谢。
发布于 2017-03-31 18:54:44
记录在案。我无法在Chrome中使用带有X-Requested with的HTTP Vary报头。Chrome在缓存时没有考虑HTTP Vary标头。所以缓存命中总是返回相同的内容。
作为一种变通方法,我仅在使用ajax进行请求时添加了问题字符串(如?ajax=1)。
例如:http://localhost/myrequest.php http://localhost/myrequest.php?ajax=1
通过这种方式,Chrome存储了两个缓存条目,一个使用ajax,另一个不使用。
发布于 2018-08-22 18:12:44
这似乎是Chrome中的一个bug。当使用Vary头来计算其缓存键时,Chrome似乎执行区分大小写的查找,这不起作用,因为它以小写存储头。
在您的示例中,Chrome正在查找X-Requested With。如果您更改x-requested with的value标头的值,它应该可以工作。
编辑:实际上我错了。也许我睡眠不足。使用小写的标头名称也不起作用。真对不起。
https://stackoverflow.com/questions/42522528
复制相似问题