对于 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 回答5.9k 阅读✓ 已解决
9 回答9.3k 阅读
6 回答4.9k 阅读✓ 已解决
5 回答8k 阅读✓ 已解决
13 回答6.1k 阅读
5 回答7.8k 阅读✓ 已解决
3 回答10.4k 阅读✓ 已解决
理论上应该是
Response Headers
的优先级更高,因为一般会通过网关来控制缓存,HTML 经后端生成后,会经过网关返回回去,网关就可以在这个阶段设置缓存。看 MDN 的 meta 描述关于
http-equiv
的介绍既然如此的话,浏览器就没必要再去阅读 HTML 文档来确定缓存了。
可以看一下这个文章:Caching Tutorial for Web Authors and Webmasters