http缓存

  1. service worker
  2. memory cache
  3. disk cache
  4. push cache 主要是http2,缓存时间短
  5. 网络请求

浏览器缓存 #

Cache-Control: 请求时候的值:

  • no-cache
  • no-store
  • max-age
  • max-stable
  • min-fresh
  • only-if-cached

响应时候的值:

  • public private
  • no-cache no-store
  • no-transform
  • must-revalidate
  • proxy-revalidate
  • max-age
  • s-maxage

强缓存,协商缓存,通过http header实现。

强缓存 #

通过 expirescache-control 实现 通过Cache-control过期30秒

expires是http1的,过期时间是本地时间。

Expires: Web,22 xxx
Cache-control: max-age=30

常见的值

协商缓存 #

如果缓存过期了,就需要发请求验证是否有更新。

  • last-modified 最后修改时间,问题不能打开缓存文件,最小时间秒
  • etag指纹。比较新。

频繁变动的资源 cache-control: no-cache,每次都会请求服务器,然后根据 etag 觉得是否重新拉取数据。虽然数据请求多,但是返回的内容少。