Cache-Control:no-cache支不支持这种设置?

发布于 2022-09-11 16:27:39 字数 165 浏览 14 评论 0

Cache-Control:no-cache是缓存但立即失效,然后去cdn对比etag。如果etag没过期则返回304使用本地缓存,过期则返回202使用新上线内容。

现在的场景:去cdn对比etag,但网络不通,这时也使用本地缓存而不是报网络错误,应该怎么实现?前端有这样的配置吗? 应该怎么配置?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生面具三千个 2022-09-18 16:27:39

cache-control: no-cache不是不缓存,而是有条件地使用缓存(当ETag对比一致、服务器返回304后可使用缓存)

晨与橙与城 2022-09-18 16:27:39

cache-control:no-cache 表示不缓存,直接请求服务器(你的cdn)下载文件。
etag 是一个类似文件 content hash sum,当浏览器第一次下载文件的时候,服务器将文件的etag发送给浏览器,浏览器保存下来。当下一次访问这个文件时,浏览器发送请求并携带 etag 信息到服务器。服务器检查etag是否和目标文件一致,如果一致,浏览器就使用缓存副本,否则,下载新文件。

如果想使用缓存,要先清楚你期望的缓存策略。一般可以将前端资源分为两类,html 和 其他,对于html,设置 no-cache 和 etag,从而在保证html最新的前提下充分利用缓存。
其他资源,如 css/js/image 等等,使用gulp/webpack 等构建工具在文件命中加入内容的hash,并设置尽可能长的 max-age(一般设置一年)。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文