强缓存和协商缓存

强缓存和协商缓存

强缓存是浏览器对之前请求过的文件进行缓存,以便下一次访问的时候重复使用节省带宽。强制缓存的工作原理是通过http响应头中的特定字段来控制的,包括expires cache-control 指示了资源的缓存有效时间,当浏览器在有效时间内请求统一资源的时候,会直接从本地缓存中获取资源,并不会向服务器发起请求。

协商缓存是浏览器与服务器之间进行通信以确认资源是否任然有效的过程涉及到了etag 和if-none-match,以及last-modified和if-modified-since。Etag和ifnonematch 当浏览器第一次请求这个资源的时候,服务器会返回一个etag,是资源版本的唯一标识符。浏览器在后续请求该资源的时候,会在请求头中携带ifnonematch字段,值为接受到的etag。服务器会根据这个值来判断资源是否更新,如果有更新,服务器会返回新的资源和新的etag,如果没有更新,则返回304 告诉浏览器中可以使用缓存中的资源。

Last modified if modified since 类似于etag机制,但是last-modified记录的是资源最后修改的时间,会在请求头中携带ifmodified since字段,这个值为先前接收到的lastmodified ,会检查最后修改的时间是否在这个时间之后,如果是,说明资源有更改,返回最新的资源,如果不是,服务器返回304状态码。

在浏览器加载资源的时候,会检查强缓存是否命中,如果强缓冲有资源的副本,并且没有过期,则直接使用。不会发送http请求到服务器,只有当强缓冲未命中或者资源已经过期的时候,浏览器才会进行协商缓冲。

应用场景:强制缓存适用于不经常变动的静态资源,如图片、CSS和JavaScript文件。这些资源的变更频率较低,因此可以设置较长的缓存时间,以提高加载速度并减少服务器压力。协商缓存则适用于那些可能被频繁更新的资源,通过服务器的验证确保用户能够获取最新的资源内容。

相关推荐
GISer_Jing10 分钟前
今天看了京东零售JDS的保温直播,秋招,好像真的结束了,接下来就是论文+工作了!!!加油干论文,学&分享技术
前端·零售
Mapmost17 分钟前
【高斯泼溅】如何将“歪头”的3DGS模型精准“钉”在地图上,杜绝后续误差?
前端
废春啊1 小时前
前端工程化
运维·服务器·前端
爱上妖精的尾巴1 小时前
6-9 WPS JS宏Map、 set、get、delete、clear()映射的添加、修改、删除
前端·wps·js宏·jsa
爱分享的鱼鱼1 小时前
对比理解 Vue 响应式 API:data(), ref、reactive、computed 与 watch 详解
前端·vue.js
JS_GGbond1 小时前
【性能优化】给Vue应用“瘦身”:让你的网页快如闪电的烹饪秘籍
前端·vue.js
T___T1 小时前
一个定时器,理清 JavaScript 里的 this
前端·javascript·面试
代码小学僧1 小时前
从 Arco Table 迁移到 VTable:VTable使用经验分享
前端·react.js·开源
微笑的曙光1 小时前
Vue3 环境搭建 5 步走(零基础友好)
前端
不知名用户来了1 小时前
基于vue3 封装的antdv/element-Plus 快速生成增删改查页面
前端