本文转载自: http://www.cnblogs.com/chenqf/p/6386163.html, 我在此只做一个要点的记录
首先,为方便理解,我们认为浏览器存在一个缓存数据库
HTTP缓存有多种规则,根据是否重新向服务器发送请求,可分为强制缓存和对比缓存。
强制缓存机制下如果缓存依旧有效,则不与服务器发生交互,而对比缓存下不管是否生效,都会与服务器交互,以判断是否是最新资源
强制缓存与对比缓存同时存在的情况下,强制缓存优先级更高。
强制缓存关键字段: expire(1.0) cache-control(1.1)
对比缓存关键字段: last-modified/last-modified-since(1.0) etag/if-none-match(1.1)
备注: 1.1优先级更高
完整请求过程如下: