即使 HTTP 缓存尚未过期,URI 中唯一的 GET 变量是否会使 HTTP 缓存无效?

即使 HTTP 缓存尚未过期,URI 中唯一的 GET 变量是否会使 HTTP 缓存无效?

假设根据 HTTP 1.1expires标头,cachedfile.js 将在 1 年后过期。在现代浏览器中,这两个 URI 是否会被分别缓存?

请求 1

cachedfile.js?var=1

请求 2

cachedfile.js?var=2

假设Cache-control: public和相同Etag

答案1

是的,它们将被单独缓存。事实上,开发人员使用的一个技巧是强制浏览器在更新 CSS 文件后提取其新副本,即在文件后附加类似 ?v=2 的内容(例如href="styles.css?v=2")。

相关内容