如何stale-while-revalidate交互与s-maxage在Cache-Control头?



只是想知道我为SSR页面指定的标题:public, s-maxage=3600, stale-while-revalidate=59

请注意,我的stale-while-revalidate值是59秒,这是少于s-maxage值是1小时。我想知道当stale-while-revalidate值小于s-maxage时,会发生什么?stale-while-revalidate头被忽略了吗?

Cache-Control页眉设置为s-maxage=3600, stale-while-revalidate=59意味着两件事:

  1. 页面被认为是新鲜的3600秒(s-maxage=3600);
  2. 在此之后的59秒内(stale-while-revalidate=59),页面将继续从stale状态提供服务,同时在后台进行重新验证。

stale-while-revalidate不会被忽略,它决定了在页面的maxage通过后(即当页面过期时)重新验证时发生的额外时间窗口。

下面是三个时间窗口的缓存状态(基于https://web.dev/stale-while-revalidate/#live-example):

)新鲜的,用于服务页面。没有重新生效。缓存的页面是陈旧的,但用于服务该页面。在后台进行重新验证以填充缓存。缓存页是陈旧的,根本没有使用。

相关内容

  • 没有找到相关文章

最新更新