HTTP缓存原理

  http的缓存分为强制缓存和对比缓存,两者的区别在于,强制缓存只要设置的时间不过期,就可以直接拿去用,而不用向服务器再一次发送请求。而对比缓存不管缓存是否有效,都需要向服务器发送请求。

  其过程如下:

                http文件缓存机制流程图

  1.  浏览器会先查询Cache-Control来判断内容是否过期,如果没有过期,直接读取浏览器缓存文件。(强制缓存)

  2.  在浏览器上判断上次文件返回头中是否含有ETag,如果有则连同If-None-Match一起向服务器发送请求,服务器判断ETag是否失效,有效返回304读取缓存数据(对比缓                      存)。失效返回200。ETag是有服务器生成的当前资源的唯一标识,如果资源发生改变,服务器会发送一个新的Etag。

  3.  在浏览器端判断上次文件返回头中是否含有Last-Modified,有则连同If-Modified-Since一起想服务器发送请求,服务器判断Last-Modefied是有失效,有效返回304读取缓                     存数据(对比缓存),失效返回200。

  4.  如果ETag和Last-Modefied都没有,则直接向服务器发送请求内容。

原文地址:https://www.cnblogs.com/171220-barney/p/8898882.html