浏览器的缓存机制笔记

HTTP缓存机制:强缓存和协商缓存

缓存可以减少网络IO的消耗,提高访问速度。主要是获取数据的方式,判断是需要从服务端获取数据还是使用自身缓存数据,多数应用于网路传输不稳定的移动端,或者数据相对固定的页面。在HTTP响应Response的报文头,通过请求头中的标志来判断使用哪种数据获取机制,没有标志则发出请求获得最新的数据。

响应规则

通过Response响应头中的Cache-Control来配置缓存规则
  • public:所有内容都将被缓存(客户端和代理服务器都可缓存)

  • private:所有内容只有客户端可以缓存,Cache-Control的默认取值

  • no-cache:客户端缓存内容,但是是否使用缓存则需要经过协商缓存来验证决定

  • no-store:所有内容都不会被缓存,即不使用强制缓存,也不使用协商缓存

  • max-age=xxx (xxx is numeric):缓存内容将在xxx秒后失效

Expires也是控制缓存的配置项

配置Expires是为服务器返回该请求结果缓存的到期时间,即再次发起该请求时,如果客户端的时间小于Expires的值时,直接使用缓存结果,不过Cache-Control优先级比Expires高,且存在客户端与服务端误差问题会配置导致失效,所以主要还是使用Cache-Control配置缓存规则

内存缓存和硬盘缓存(同时也需要考虑客户端存储方式)
  • 内存缓存(from memory cache)读取速度更快,但进程关闭,则该进程的数据会清空。
  • 硬盘缓存(from disk cache)速度比内存缓存慢,进程不会影响文件

静态资源图片和比较小的文件大多会默认使用内存缓存,浏览器可以更好的节省渲染成本,但大文件一般会写入硬盘内存,进行I/O操作,重新解析该缓存内容。

你可能感兴趣的:(浏览器的缓存机制笔记)