HTTP 协议缓存过程

参考文章:浏览器 HTTP 协议缓存机制详解

HTTP 协议缓存过程_第1张图片
缓存过程

max-age 和 expires

服务器用 http/1.0+ 的 expires 首部或者 http/1.1 cache-control: max-age 首部来指定过期日期,两者作用一样,但有一些偏差。

HTTP 协议缓存过程_第2张图片
来自 HTTP 权威指南

max-age 是相对于文档生成的时间,而 expires 受到服务端和客户端之间的时间偏差的影响。

Etag 和 last-modify

即使缓存过期,如果文件在缓存期间没有更新过,则可以继续使用缓存。使用 if-None-Match 和 Etag 或者 if-Modified-since 和 last-modify 都可以判断文件是否有更新。

HTTP 协议缓存过程_第3张图片
来自 HTTP 权威指南

为什么使用 Etag:

  • 文件被重写,但内容不变
  • 有些文件修改并不重要,例如注释
  • last-modify 使用的单位是秒,一些场景上不适用

你可能感兴趣的:(HTTP 协议缓存过程)