首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何告诉浏览器每X分钟重新验证缓存的资产一次?

如何告诉浏览器每X分钟重新验证缓存的资产一次?
EN

Stack Overflow用户
提问于 2018-04-25 14:06:17
回答 1查看 141关注 0票数 1

TL;DR:如何实现像Cache-Control: public,must-revalidate这样的缓存,但不知怎么地告诉浏览器每30分钟就重新验证一次,而不是每次请求?

长篇版本:

我正在提供一些js和css文件,我希望用户始终保持本地缓存的更新,但要有一些自由。浏览器应该能够在本地缓存文件,但是不应该需要对每个请求重新进行验证。例如,在第一个304响应之后,再使用已经本地缓存的文件30分钟是可以的:在用户导航到下一页之后,浏览器不需要再次检查新鲜度。

我读过几篇关于如何实现像那样工作但没有成功的缓存的文章。

我知道304请求非常快(我使用的是CDN ),因为响应体是空的,但是浏览器仍然需要等待几毫秒,而且如果发出这样的4-5请求,浏览器已经开始排队这些revalidation请求。

最接近我的是:Cache-Control: max-age=1800,public,must-revalidate

浏览器将将资产缓存到初始的30分钟,但当它变得陈旧后,浏览器将开始每次重新验证。有什么办法可以绕过吗?

资料来源:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control https://support.cloudflare.com/hc/en-us/articles/115003206852-Origin-Cache-Control

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-08 15:43:24

如果重新验证成功,它将缓存它30分钟。请参阅RFC 2616 10.3.5

如果缓存使用接收到的304个响应来更新缓存条目,则缓存必须更新条目以反映响应中给定的任何新字段值。

流程是这样的:

  • 它将被缓存30分钟。
  • 最大年龄将到期。
  • 它将被迫重新验证。
  • 它将更新新的30分钟的最大年龄。

另见最大年龄和304未修改的处理

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50024384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档