当浏览器要请求资源时
1、调用 Service Worker 的 fetch 事件响应
2、查看 memory cache
3、查看 disk cache。这里又细分:
如果有强制缓存且未失效,则使用强制缓存,不请求服务器。这时的状态码全部是 200
如果有强制缓存但已失效,使用对比缓存,比较后确定 304 还是 200
4、发送网络请求,等待网络响应
5、把响应内容存入 disk cache (如果 HTTP 头信息配置可以存的话)
6、把响应内容 的引用 存入 memory cache (无视 HTTP 头信息的配置)
7、把响应内容存入 Service Worker 的 Cache Storage (如果 Service Worker 的脚本调用了 cache.put())