当从浏览器发送一个http请求时,首先会判断以下请求的资源是否在本地有缓存
如果没有缓存,就继续向服务器发送HTTP请求,服务器返回资源后,将资源渲染到页面;
如果有缓存:
首先要判断缓存是否过期(cache-control:maxage时间):
没有过期,可以直接读取缓存,然后用读取到的缓存渲染页面;
过期了的话,判断last-Modified,ETag:
如果有的话,就发送http请求询问服务器本地缓存是否可用(浏览器里缓存的内容 是否和服务器里的一样)
:如果缓存可用的话,服务器会返回304状态码,然后浏览器使用协商缓存渲染页面;如果缓存不可用。服务器会返回200状态码,同时返回请求资源,然后浏览器渲染
图解: