浏览器缓存

Web缓存种类

所谓浏览器缓存其实就是指在本地使用的计算机中开辟一个 内存区 ,同时也开辟一个硬盘区作为数据传输的 缓冲区 ,然后用这个缓冲区来暂时保存用户以前访问过的信息。

浏览器缓存过程

浏览器缓存位置一般分为四类

Service Worker --> Memory Cache --> Disk Cache --> Push Cache。

强缓存

与缓存控制相关的HTTP头字段表,包含强缓存和弱缓存

缓存位置

强缓存我们会把资源放到memory cache 和 disk cache中
1、Service Worker
是运行在浏览器背后的独立线程,一般可以用来实现缓存功能。使用 Service Worker的话,传输协议必须为 HTTPS。因为 Service Worker 中涉及到请求拦截,所以必须使用 HTTPS 协议来保障安全。Service Worker 的缓存与浏览器其他内建的缓存机制不同,它可以让我们自由控制缓存哪些文件、如何匹配缓存、如何读取缓存,并且缓存是持续性的。
2、Memory Cache
内存中的缓存,主要包含的是当前中页面中已经抓取到的资源,例如页面上已经下载的样式、脚本、图片等。读取内存中的数据肯定比磁盘快,内存缓存虽然读取高效,可是缓存持续性很短,会随着进程的释放而释放。一旦我们 关闭 Tab 页面 ,内存中的缓存也就被释放了。
3、Disk Cache
4、Push Cache
Push Cache(推送缓存)是 HTTP/2 中的内容,当以上三种缓存都没有命中时,它才会被使用。它只在会话(Session)中存在,一旦会话结束就被释放,并且缓存时间也很短暂,在Chrome浏览器中只有5分钟左右,同时它也并非严格执行HTTP头中的缓存指令。
5、CPU、内存、硬盘

协商缓存

协商缓存就是强缓存失效后,浏览器携带缓存标识向服务器发送请求,由服务器根据缓存标识来决定是否使用缓存的过程。

协商缓存相关HTTP头字段