首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >header“缓存控制: s-maxage=31536000,陈旧的同时-重新验证”是如何工作的?

header“缓存控制: s-maxage=31536000,陈旧的同时-重新验证”是如何工作的?
EN

Stack Overflow用户
提问于 2021-08-09 03:58:22
回答 1查看 2.8K关注 0票数 3

我在我的项目中使用NextJS。对于每一个页面请求,它都会添加“s-maxage=31536000”,响应时重新验证缓存控制规则。这两条规则是如何一起工作的?

EN

回答 1

Stack Overflow用户

发布于 2021-08-09 04:25:17

s-maxagestale-while-revalidate是指示web对象缓存的cache-control HTTP标头标准的一部分。

正如您的问题所暗示的那样,允许将它们分隔成逗号以实现您想要的缓存策略

代码语言:javascript
复制
Cache-Control: s-maxage=1, stale-while-revalidate=60

第一个值(s-maxage)是对象在秒内缓存的时间。它还“覆盖max-ageExpires报头,但仅用于共享缓存(例如代理),并被私有缓存忽略”-请参见HTTP过期

第二个值(stale-while-revalidate),如果支持,是s-maxage过期后对象可以缓存多长时间,直到需要再次从站点请求对象为止。

示例

  • 初始请求-内容用上面的cache-control指令缓存。
  • 请求在初始请求后1-60秒内显示缓存的内容??在后台重新验证。
  • 请求初始请求后60秒或更长时间-导致浏览器请求一个新版本的内容服务。

下面是如何设置Next.js中的缓存头

下面是我制作的一个相关员额,它突出了Next.js中的ISR过程。

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

https://stackoverflow.com/questions/68706688

复制
相关文章

相似问题

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