一、什么是浏览器缓存机制
浏览器缓存机制是指浏览器在加载网页时将一些静态资源(如图片、CSS、JavaScript文件)保存在本地,以便加快页面加载速度和减少网络带宽消耗的一种技术。浏览器缓存机制分为强缓存和协商缓存两种方式。
二、强缓存
1、 http 1.1 cache-control:max-age
在HTTP 1.1中,可以通过设置Cache-Control: max-age=xxx
来指定资源在客户端的缓存有效期,单位为秒。
2、http 1.0 expires
在HTTP 1.0中,可以通过设置Expires
字段来指定资源的过期时间,与Cache-Control: max-age
类似,但是Expires是一个具体的日期时间。
3、不会发送http请求,从浏览器缓存获取
当资源处于强缓存中时,浏览器会直接从本地缓存获取资源,而不会向服务器发送HTTP请求。
三、协商缓存
1、状态码304
当资源处于协商缓存阶段时,服务器会返回状态码304,告诉浏览器可以使用本地缓存。
2、ETag和Last-Modified
服务器通过ETag(实体标签)和Last-Modified(最后修改时间)来判断资源是否有更新,客户端可以通过发送If-None-Match和If-Modified-Since字段来验证缓存。
3、验证缓存的流程
如果资源请求的响应头里含有Last-Modified,客户端可以在后续的请求头中带上if-Modified-Since头来验证缓存。若服务器判断资源最后修改时间一致,则返回304状态码告知浏览器可以从本地读取缓存
四、浏览器缓存的优势
1、提升用户体验
通过浏览器缓存,用户可以更快地加载网页并浏览内容,减少等待时间,提升整体用户体验。
2、减少网络请求
缓存静态资源可以减少网络请求次数,降低服务器负载和网络带宽消耗。
3、降低服务器压力
由于浏览器可以直接从本地缓存获取资源,减少了对服务器的请求,降低了服务器的压力。
4、节约用户流量
缓存机制可以减少用户的流量消耗,尤其对于移动设备用户来说,节约了用户的流量费用。
5、提高网站性能
加快页面加载速度和减少网络延迟,有助于提高网站的性能表现,提升网站的竞争力。
五、浏览器三级缓存原理
第一步:先查找内存,如果内存中存在,从内存中加载
第二步:如果内存中未找到,选择硬盘获取,如果硬盘中有,从硬盘中加载
第三步:如果硬盘中未,那就请求服务器,重新加载资源,加载到的资源缓存到硬盘和内存。