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 名称也不起作用。抱歉。
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 名称也不起作用。抱歉。