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

Caching 如何告诉浏览器每X分钟只重新验证一次缓存的资产?,caching,http-headers,http-caching,Caching,Http Headers,Http Caching,TL;DR:如何实现像缓存控制:public这样的缓存,必须重新验证,但不知何故告诉浏览器只需每30分钟重新验证一次,而不是每次请求都要重新验证一次 长版本: 我提供了一些js和css文件,我希望用户总是保持本地缓存的更新,但是有一些自由。浏览器应该能够在本地缓存文件,但不需要对每个请求进行重新验证。例如,在第一次304响应之后,可以继续使用已经本地缓存的文件30分钟:在用户导航到下一页后,浏览器无需再次检查新鲜度 我读过几篇文章,介绍了如何实现这样的缓存,但没有成功 我知道304请求非常快(我

TL;DR:如何实现像缓存控制:public这样的缓存,必须重新验证,但不知何故告诉浏览器只需每30分钟重新验证一次,而不是每次请求都要重新验证一次

长版本:

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

我读过几篇文章,介绍了如何实现这样的缓存,但没有成功

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

我得到的最接近的结果是:
缓存控制:最大年龄=1800,公共,必须重新验证

浏览器将在最初的30分钟内缓存资产,但在资产过时后,浏览器将开始每次重新验证。有什么办法吗

资料来源:

如果重新验证成功,它将再缓存30分钟。见:

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

流程如下:

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