什么情形会触发from memory cache 或 from disk cache

如下图,返回头只有etag,last-modified,请问为何会返回200 ok (from disk cache)
image.png

阅读 7.5k
3 个回答

因为没有配置强缓存,所以浏览器或者nginx会默认一个cache-control, 默认值可能为private或者public,导致浏览器去取了缓存;

非无痕模式下,如果已有硬盘缓存:

  • base64 图片第二次始终会 from memroy cache。
  • 其他资源会先 from disk cache,视内存空闲情况而定是否在内存中缓存。如果内存缓存了、则在不关闭浏览器窗口的情况下第二次就 from memroy cache 了;如果没缓存,还是 from disk cache。关闭浏览器窗口 memory cache 自动回收,下次进还是 from disk cache。

啥叫 Last-Modified 都过期了Last-Modified 是最近一次修改的修改时间,何来“过期”之说?

Etag 一般是用作 304 缓存的(浏览器还是会请求一次服务器),不过显然你这个服务器没配好,压根没走 304,直接 from disk cache 了(浏览器压根没请求服务器)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题