我有一个 SPA,它使用来自后端服务器的一些静态资产。出于某种原因,我选择了ETag
验证作为缓存机制。简而言之,我希望浏览器将资产永久保存在其缓存中,只要相关ETag
的 s 保持不变。
为了向浏览器发出关于缓存的信号,Cache-Control
响应中必须存在标头。对我来说,这绝对是可以理解的,但让我感到困惑的是,我也必须max-age
在标题中提供。换句话说Cache-Control=public
,不起作用,而Cache-Control=public, max-age=100
正确的标题。
在我看来,这听起来很矛盾。If-Not-Match={ETag}
浏览器在请求时查询服务器以查看资产是否已更改。那么这里的作用是什么max-age
?