#### 网络请求的顺序
`
1、Server Worker
2、Memory Cache
3、Disk Cache
4、网络请求
`
## memory cache
memory cache是内存中的缓存,对应的disk cache就是硬盘缓存,几乎所有的网络请求都会被浏览器自动加入到memory Cache中,因为数量很大,但内存有限,所以只能是临时保存。memory cache机制保证了一个页面中如果有两个相同的请求,实际会只请求一次。
max-age = 0 被解释为不要在下次浏览时使用
如果不想资源进入缓存 可以使用 no-store
## disk cache
也称http cache,存储在硬盘上的缓存,因此是持久存储的,实际存在于系统中的,disk cache会严格按照HTTP头部信息中的各类字段来判定哪些资源可以缓存,哪些不可以。速度相比内存存储慢,但还是比网络请求快不少。当容量太大时,浏览器会有各自的算法来清除最老的或可能没用的资源。
## service worker
有别于内存缓存和硬盘缓存,只有手动调用 API cache.delete(resource) 或者容量超过限制,被浏览器全部清空。
## max-age:即最大有效时间,在上面的例子中我们可以看到
##must-revalidate:如果超过了 max-age 的时间,浏览器必须向服务器发送请求,验证资源是否还有效。
##no-cache:虽然字面意思是“不要缓存”,但实际上还是要求客户端缓存内容的,只是是否使用这个内容由后续的对比来决定。
##no-store: 真正意义上的“不要缓存”。所有内容都不走缓存,包括强制和对比。
##public:所有的内容都可以被缓存 (包括客户端和代理服务器, 如 CDN)
##private:所有的内容只有客户端才可以缓存,代理服务器不能缓存。默认值。