【发布时间】:2021-09-06 13:50:55
【问题描述】:
有几个类似的问题,但我发现没有一个是明确或明确的。
这是我想要的行为:
- 只要网络可用,浏览器必须检查是否有新版本
- 如果没有新版本,浏览器可以使用缓存的版本
- 缓存版本在 X 天后过期
我想我可以用 Cache-Control: max-age 和 ETags 做到这一点。但是,我找不到 max-age 是否应该是 0 或者内容应该缓存多长时间。
例如如果我用 ETag 做Cache-Control: max-age=86400(1 天),会不会:
-
每次都向服务器发出请求,但如果 ETag 没有更改,服务器只会返回 304。 1天后,丢弃缓存的版本,从服务器重新获取(应该与丢弃的版本相同)。
-
一天不发出任何服务器请求。然后,1天后,服务器仍然可以返回304。缓存的版本可以无限期保留。
我希望浏览器在 X 天后重新获取,因为万一出现错误,我不希望用户被损坏的缓存版本卡住。
【问题讨论】:
标签: http caching browser http-headers etag