HTTP 缓存之 no-cache 和 no-store 的区别

no-cache 和 no-store 都是 HTTP 协议头 Cache-Control 的值。区别是:

  • no-store

    彻底禁用缓冲,所有内容都不会被缓存到缓存或临时文件中。

  • no-cache

    在浏览器使用缓存前,会往返对比 ETag,如果 ETag 没变,返回 304,则使用缓存。

除了 no-cache 和 no-store,Cache-Control 头的取值还有:

  • public

    所有内容都将被缓存(客户端和代理服务器都可缓存)

  • private

    内容只缓存到私有缓存中(仅客户端可以缓存,代理服务器不可缓存)

  • max-age=xxx

    缓存的内容将在 xxx 秒后失效,这个选项只在 HTTP1.1 可用,并如果和 Last-Modified 一起使用时,优先级较高。