HTML页面 <meta> 中设置了不缓存,后端返回头中设置了缓存时间页面会缓存吗?
对于 HTML
页面而言,如果页面的 <meta>
设置了不缓存(no-cache
, no-store
, Expires = 0
)。但是 Nginx
配置了 HTML
页面的缓存时间,那么实际用户在浏览的时候是以什么为准呢?
回复
1个回答

test
2024-07-11
理论上应该是 Response Headers
的优先级更高,因为一般会通过网关来控制缓存,HTML 经后端生成后,会经过网关返回回去,网关就可以在这个阶段设置缓存。
看 MDN 的 meta 描述关于 http-equiv
的介绍
属性定义了一个编译指示指令。这个属性叫做 http-equiv(alent) 是因为所有允许的值都是特定 HTTP 头部的名称
既然如此的话,浏览器就没必要再去阅读 HTML 文档来确定缓存了。
可以看一下这个文章:Caching Tutorial for Web Authors and Webmasters
Meta tags are easy to use, but aren’t very effective. That’s because they’re only honored by a few browser caches, not proxy caches (which almost never read the HTML in the document).
译: meta 标签很容易使用,但并不十分有效。这是因为它们只被少数浏览器的缓存所尊重,而不是代理缓存(几乎从不读取文档中的HTML)。
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容