我们假设有两个网址:
http://example.com/myaccount?user=12345
http://example.com/myaccount?user=34567
据我所知,浏览器会单独缓存它们,并且不会使用第一个请求中的Last-Modified标头重新验证第二个。
在这种情况下是否可以强制浏览器使用Last-Modified标头?
你能解释一下为什么会这样吗?
答案 0 :(得分:1)
我认为在某些情况下,Web服务器将忽略查询字符串。例如,您可以尝试在开箱即用的Apache服务器上curl -I http://example.com/styles.css | grep Last-Modified
,然后为http://example.com/styles.css?v=2
运行相同的命令。假设文件存在,您可能会获得相同的Last-Modified时间戳。
可能是浏览器(我的猜测是他们这样做)将?v=2
视为不同的文件或具有更新内容的文件。此外,我认为大多数内容交付网络都将以这种方式进行配置,如果文件的查询字符串不同,则允许提供文件的新副本。
无论如何,这是一个有趣的问题。我会更多地阅读它。我希望有人可以在这里更详细地解释这一点。