如何让浏览器保留缓存但每次都通过 Etag 重新验证?

问题描述 投票:0回答:0

我试图彻底理解这一点,但到目前为止,这似乎无法在现实中实现。我尝试在这里阅读不同的答案、文档或规范(浏览器似乎以不同方式实现),并进行我自己的测试。但是不同的缓存标头显然会导致不同的浏览器做不同的事情,采取不同的优先级,或者甚至根本不工作,看起来。

这是我的设置:我正在发送带有

Cache-Control: max-age=864000, public
标题和Etag标题的图像。

从我读到的内容来看,这个和 Etag 的存在应该足以让浏览器每次都重新验证。

但事实并非如此。它只是从磁盘缓存加载,甚至不向服务器发送包括 Etag 的请求。

在其中一个答案中说

must-revalidate
是没有必要的,Etag 的存在导致浏览器已经重新验证。我无法确认。我也试过
Cache-Control: max-age=864000, must-revalidate, public
但同样不成功的结果:它不会重新生效 10 天。

我想要实现的目标:将图像存储在浏览器缓存中最多 10 天,但每 12 小时重新验证一次。

标题的正确组合是什么?

http caching browser
© www.soinside.com 2019 - 2024. All rights reserved.