no-cache 和 no-store 都是 HTTP 协议头 Cache-Control 的值。区别是:
-
no-store
彻底禁用缓冲,所有内容都不会被缓存到缓存或临时文件中。
-
no-cache
在浏览器使用缓存前,会往返对比 ETag,如果 ETag 没变,返回 304,则使用缓存; 使用no-cache的目的就是为了防止从缓存中获取过期的资源
除了 no-cache 和 no-store,Cache-Control 头的取值还有:
-
public
所有内容都将被缓存(客户端和代理服务器都可缓存)
-
private
内容只缓存到私有缓存中(仅客户端可以缓存,代理服务器不可缓存)
-
max-age=xxx
缓存的内容将在 xxx 秒后失效,这个选项只在 HTTP1.1 可用,并如果和 Last-Modified 一起使用时,优先级较高。
相关资料: 前端浏览器缓存知识梳理