文章推荐:
缓存 | HTTP缓存机制
HTTP----HTTP缓存机制
值得注意的是,当Expires和Cache-Control同时存在的时候,Cache-Control会优先考虑
缓存位置
当强缓存
命中或者协商缓存
中服务器返回304的时候,我们直接从缓存中获取资源。那么资源存放在哪里呢
浏览器中的缓存一共分为4种,优先级从高到低分别是:
- Service Worker
- Memory Cache
- Disk Cache
- Push Cache
Service Worker即让JS运行在主线程之外,由于脱离了浏览器窗口,因此无法访问DOM
. 虽然如此。 但它仍然能帮助我们完成很多有用的功能,比如离线缓存
、消息推送
和网络代理
等功能。其中的离线缓存就是 Service Worker Cache。
Service Worker 同时也是 PWA (Progressive Web App 渐进式增强WEB应用) 的重要实现机制。
Memory Cache 内存缓存,从效率上讲它最快. 但是从存活时间上讲又是最短的. 当渲染进程结束后,内存缓存也就不存在了
Disk Cache磁盘缓存,从存取效率上讲是比内存缓存慢的,但是他的优势在于存储容量和存储时长。
如何决定将资源放入硬盘还是内存?
- 比较大的JS、css文件会直接被丢进磁盘,反之丢进内存
- 内存使用率较高的时候,文件优先进入磁盘
Push Cache即推送缓存,是浏览器缓存的最后一道防线。它是 HTTP/2 中的内容,虽然现在应用的并不广泛,但随着 HTTP/2
的推广,它的应用越来越广泛。