Chrome 是否支持 HTTP Vary header

Does Chrome support the HTTP Vary header

Chrome 的缓存是否支持 HTTP Vary header?对于特定的 url 请求,服务器响应两个不同的 html 文件,具体取决于它是否是 ajax 请求。所以我将 Vary header 添加到 X-Requested-With。我期待 Chrome 记录两个缓存条目,但似乎并非如此。我总是得到我发出的第一个请求的缓存命中。这是正常行为吗?

谢谢。

备案。我无法在 Chrome 中将 HTTP Vary header 与 X-Requested-With 一起使用。 Chrome 在缓存时没有考虑 HTTP Vary header。所以缓存命中总是返回相同的内容。

作为一种解决方法,我仅在使用 ajax.

执行请求时添加了一个问题字符串(如?ajax=1)

例如: http://localhost/myrequest.php http://localhost/myrequest.php?ajax=1

这样 Chrome 存储了两个缓存条目,一个有 ajax 一个没有。

这似乎是 Chrome 中的错误。当使用 Vary header 计算其缓存键时,Chrome 似乎执行了 case-sensitive 查找,但它不起作用,因为它以小写形式存储 header。

在您的示例中,Chrome 正在寻找 X-Requested-With。如果您将 Vary header 的值更改为 x-requested-with,它应该可以工作。

编辑: 其实我错了。也许我缺乏睡眠。使用小写 header 名称也不起作用。抱歉。