浏览器缓存机制
缓存可以减少网络IO消耗,提高访问速度。浏览器缓存是一种操作简单,效果显著的前端性能优化手段!
对于这个操作的必要性,chrome官方给出的解释似乎更有说服力。
很多时候,大家倾向于将浏览器缓存理解为“HTTP缓存”。但事实上浏览器缓存机制有4个方面,它们按照获取资源请求时的优先级依次排列如下:
1. Memory Cache
2. Service Worker Cache
3. HTTP Cache
4. Push Cache
HTTP Cache (Cache-Control expires 等字段控制的缓存)。
Memory cache 【200 缓存】
memory cache 内存缓存,不会请求服务器, 浏览器标签关闭后,缓存释放【失效】
disk cache 硬盘缓存, 浏览器标签关闭后,下次打开还存在【不失效】
Http cache 【304 缓存】
强缓存
expires 【http 1.0】
cache-control 【http 1.1】
public: 既可以被浏览器,也可以被中间代理服务器缓存 (理解为cdn)
pirvate:只能被浏览器缓存
no-store: 所有的请求都不缓存,包括代理缓存(cdn),必须让服务端重新返回数据
no-cache:不使用浏览器的缓存,可以使用中间代理缓存(cdn)