对于 HTML
页面而言,如果页面的 <meta>
设置了不缓存(no-cache
, no-store
, Expires = 0
)。
但是 Nginx
配置了 HTML
页面的缓存时间,那么实际用户在浏览的时候是以什么为准呢?
对于 HTML
页面而言,如果页面的 <meta>
设置了不缓存(no-cache
, no-store
, Expires = 0
)。
但是 Nginx
配置了 HTML
页面的缓存时间,那么实际用户在浏览的时候是以什么为准呢?
以Nginx
配置的配置为准。Nginx
配置后,会把缓存的指令填充在HTTP
报头里,浏览器会根据HTTP
的报头决定缓存时间。
至于HTML
里的meta
标签的缓存设置,这些一般是给搜索引擎用,浏览器其实是不认的。
HTTP的缓存指令通常是这样的:
8 回答4.5k 阅读✓ 已解决
6 回答3.1k 阅读✓ 已解决
6 回答2.2k 阅读
5 回答6.2k 阅读✓ 已解决
5 回答1.1k 阅读✓ 已解决
8 回答3.6k 阅读
3 回答2.4k 阅读✓ 已解决
理论上应该是
Response Headers
的优先级更高,因为一般会通过网关来控制缓存,HTML 经后端生成后,会经过网关返回回去,网关就可以在这个阶段设置缓存。看 MDN 的 meta 描述关于
http-equiv
的介绍既然如此的话,浏览器就没必要再去阅读 HTML 文档来确定缓存了。
可以看一下这个文章:Caching Tutorial for Web Authors and Webmasters