#强缓存与协商缓存

  1. 什么是强缓存和协商缓存

    • 强缓存:再次请求时无需再向服务器发送请求
    • 协商缓存:再次请求时,需要向服务器校验新鲜度,如果资源是新鲜的,返回 304,从浏览器获取资源

      同时配置了强缓存和协商缓存时,如果未命中强缓存才会尝试协商缓存,命中协商缓存则依然读取缓存,否则向服务器请求,而没有配置强缓存时则自动配置启发式缓存

  2. 如何验证网站某资源添加了强缓存

    Cache-Control 是否配置为 no-cache 或者 max-age=31536000

  3. 协商缓存如何校验新鲜度

    两种方法:

    • 通过对比请求头的 If-Modified-Since 与响应头的 Last-Modified 是否一致
    • 通过对比请求头的 If-None-Match 与响应头的 Etag 是否一致