浏览器缓存

112 阅读1分钟

浏览器缓存,和服务器之间约定了一套规则:

  • 在一次会话中,检查副本是否为最新。
  • 浏览器在硬盘上专门开辟一个空间存储资源副本作为缓存。
  • 缓存适用于用户点击back / visited link / image。
  • 客户端向服务器请求数据,服务器发现文件没有改变,发送304-not modified给客户端,客户端收到后开始使用缓存文件。
  • e-tag可以唯一标识一个文件,客户端向服务器询问文件是否有变化:
   a. 如果文件的e-tag有效,服务器返回304-not modified+文件e-tag,浏览器开始使用缓存;
   b. 如果无效,返回200-OK+新资源。

缓存检测过程:

  • cache-control/expires表明资源的有效期限,控制浏览器是从缓存取数据 or 重发请求去服务器取数据。其中cache-control优先级大于expires。
  • 请求服务器后,Last modified/ETag会根据返回码是304还是200做出对应处理
  • 用户可以通过HTML中的meta标签加CONTNT="no cache"禁用缓存

附:代理服务器:反向代理和用户在同一个网络,反向代理缓存又称为边缘缓存,用于提供静态内容,减少服务器介入。边缘缓存如CDN。