作者:timCope
前言
什么是浏览器缓存?用通俗的话来说,浏览器缓存是为了加速浏览,把已经请求过的资源拷贝一份存储起来,当下次需要使用这份资源时,浏览器会根据缓存机制会判断是否向服务器重新请求。作为前端提升网页的访问速度的必备方法。了解浏览器的缓存命中原理,准确认清楚缓存的概念,是前端开发人员必须要去了解和学习的。接下来我们聊聊这个浏览器缓存(这边主要讲述HTTP协议定义的缓存机制,至于浏览器新增的storage、indexDb等缓存方法下篇文章会进行整理)
缓存仓库
既然叫资源缓存,那么存放资源的仓库又在哪里呢?浏览器的资源缓存大体分为Memory Cache 和Disk Cache两类。Memory Cache 也就是内存中的缓存,Memory Cache优点是读取速度快,但是缓存会随着进程的释放而释放。当用户关闭页面时,Memory Cache也会随之被清空。与Memory Cache想对应的就是Disk Cache,也就是硬盘中的缓存,它会根据 HTTP头字段去做判断,即使你关闭了页面,当下次打开时,如果判定缓存命中,浏览器任然可以从硬盘中读取缓存,它解决了内存缓存的小和无法持续缓存的缺点,但是也因此相对较慢。不同浏览器磁盘缓存的地址也不同,通过浏览器自带的清除缓存的功能可以对缓存进行清理,毕竟在开发过程中缓存并不是一个受人待见的朋友。访问顺序如下图所示: