只是想知道我为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
意味着两件事:
- 页面被认为是新鲜的3600秒(
s-maxage=3600
); - 在此之后的59秒内(
stale-while-revalidate=59
),页面将继续从stale状态提供服务,同时在后台进行重新验证。
stale-while-revalidate
不会被忽略,它决定了在页面的maxage
通过后(即当页面过期时)重新验证时发生的额外时间窗口。
下面是三个时间窗口的缓存状态(基于https://web.dev/stale-while-revalidate/#live-example):
)