最新要闻
- 环球看点!全国首个“风火储”打捆外送的沙戈荒新能源大基地项目预计今年6月底并网发电
- 粤港澳大湾区车展新能源车盘点,腾势N7、小鹏G6等-世界滚动
- 2023年女足世界杯开幕倒计时25天庆祝活动在悉尼举行|环球即时
- 天天微速讯:职工转岗就业打造森林旅游经济产业链 绿色转型见成效
- 三五互联再上演资本“戏码”:疑点频出引监管关注,多次不良记录浮出水面!_微速讯
- ldquo rdquo转义_ldquo 扎赉诺 rdquo 这几个字的读音是什么 焦点速读
- 广东海事局发布航行警告:部分海域军事训练
- 我国快递业发展彰显强大韧性 今年提前34天达到600亿件_观点
- 每日热闻!央行本周净投放5120亿!机构:资金面预计稳中偏宽
- 全球快报:陈礼腾:药师帮公开招股结束,业务监管面临不确定性
- 观焦点:新任“央视一姐”接班人?力压董卿和李红,美得像“天仙”一样 每日消息
- 模拟山羊3背景检查器获取流程视频攻略-快资讯
- 世界最资讯丨2023西宁河湟文化旅游艺术节今日开幕
- 高活跃股全名单,最火筹码换超6遍!成交额连续提升股稀缺,3股市盈率不到30倍
- 数字人民币缴纳行邮税在东莞口岸落地 环球要闻
- 环球新资讯:纪念北京2008年奥运会成功举办15周年系列宣传推广活动启动
手机
苹果头显发布,MR头显能否开启苹果公司新的“iphone时刻”?|钛度热评 天天消息
焦点精选!默沙东治疗胃癌III期研究未达到主要终点
- 苹果头显发布,MR头显能否开启苹果公司新的“iphone时刻”?|钛度热评 天天消息
- 焦点精选!默沙东治疗胃癌III期研究未达到主要终点
- 河南省独一无二的“紫金太岁”,就在济源王屋山,却严禁游客拍照
- 80多部影片陆续定档 暑期档推动电影市场回暖-每日热文
- 预算2063.0万元 山东第一医科大学采购生物型原子力显微镜等设备
- 天天通讯!图像拼接算法的基本原理_图像拼接算法
家电
记录--强制缓存这么暴力,为什么不使用协商缓存_世界速递
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助
前段时间在看面经的时候,发现很多份面经中都被问到了 强缓存
和 协商缓存
。因此我觉得有必要写一篇文章来好好聊聊这两者。
(资料图片仅供参考)
强缓存和协商缓存
浏览器缓存是浏览器在本地磁盘对用户最近请求过的文档进行存储,当访问者再次访问同一页面时,浏览器就可以直接从本地磁盘加载文档,其中浏览器缓存就分为 强缓存
和 协商缓存
:
强缓存
: 当浏览器在请求资源时,根据响应头中的缓存策略信息,判断是否使用本地缓存副本而无需发送请求到服务器。如果资源被标记为强缓存,浏览器会直接从本地缓存中加载资源,而不发送请求到服务器,从而提高页面加载速度并减轻服务器负载;协商缓存
: 协商缓存是一种缓存策略,用于在资源未过期但可能已经发生变化时,通过与服务器进行协商确定是否使用本地缓存。协商缓存通过在请求中发送特定的条件信息,让服务器判断资源是否有更新,并返回相应的状态码和响应头信息,以指示浏览器是否可以使用本地缓存;
所以根据以上所聊到的特点,浏览器缓存有以下几个方面的优点:
- 减少冗余的数据传输;
- 减少服务器负担;
- 加快客户端加载网页的速度;
浏览器会首先获取该资源缓存的 header
信息,然后根据 Cache-Control
和 expires
来判断是否过期。
如图,在浏览器第一次发送请求后,需要再次发送请求时,它会经过以下几个步骤:
首先,浏览器发送请求到服务器,请求的资源可能是一个网页、css 文件、JavaScript 文件或者其他类型的文件;
当服务器接收到请求后,首先检查请求中的缓存策略,例如请求头中的
Cache-Control
和expires
字段;如果资源被标记为强缓存,服务器会进行以下判断:
- 如果缓存有效,即资源的过期时间未到达或过期时间在当前时间之后,服务器返回状态码为
200 ok
,并在响应头中设置适当的缓存策略,例如设置Cache-Control
和Expires
字段,告诉浏览器可以使用本地缓存; - 如果缓存无效,即资源的过期时间已过或过期时间在当前时间之前,服务器返回新的资源,状态码为
200 ok
,并在响应头中设置适当的缓存策略;
- 如果缓存有效,即资源的过期时间未到达或过期时间在当前时间之后,服务器返回状态码为
如果资源未被标记为强缓存或缓存验证失败,服务器进行协商缓存的判断:
- 如果请求头中包含
If-Modified-Since
字段,表示浏览器之前缓存了该组员并记录了最后修改时间,服务器会根据资源的最后修改时间进行判断;- 如果资源的最后修改时间与
If-Modified-Since
字段的值相同或更早,服务器返回状态码304 Not Modified
,并在响应头中清除实际的响应头; - 如果资源的最后修改时间晚于
If-Modified-Since
字段的值,表示资源已经发生了变化,服务器返回新的资源,状态码为200 ok
,并在响应头中设置新的最后修改时间;
- 如果资源的最后修改时间与
- 如果请求头中包含
If-None-Match
字段,表示浏览器之前缓存了该资源并记录资源的ETag
值,服务器会根据资源的ETag
进行判断:- 如果资源的
ETag
与If-None-Match
字段的值相同,服务器返回状态码304 Not Modified
,并在响应头中清除实际的响应体; - 如果资源的
ETag
与If-None-Match
字段的值不同,表示资源已经发生了变化,服务器返回新的资源,状态码为200 OK
,并在响应头中设置新的ETag
;
- 如果资源的
- 如果请求头中包含
浏览器接收到服务器的响应之后,根据状态码和响应头信息进行相应的处理:
- 如果状态码为
200 OK
,表示服务器返回了新的资源,浏览器使用新的资源并更新本地缓存; - 如果状态码为
304 Not Modified
,表示资源未发生变化,浏览器使用本地缓存的副本; - 浏览器根据响应头中的缓存策略进行进一步处理:
- 如果响应头中包含
Cache-Control
字段,浏览器根据其指令执行缓存策略。例如,如果响应头中的Cache-Control
包含no-cache
,浏览器将不使用本地缓存,而是向服务器发送请求获得最新的资源; - 如果响应头中包含
Expires
字段,浏览器将与当前时间比较,判断资源的过期时间。如果过期时间已过,浏览器将不使用本地缓存,而是向服务器发送请求获取最新的资源; - 如果响应头中包含其他相关的缓存控制字段(如 ETag),浏览器可以根据这些字段进行更精确的缓存控制和验证;
- 如果响应头中包含
- 如果状态码为
其中,在上面的流程中,又有几个令人难懂的字段,主要有以下几个:
ETag
: 它是通过对比浏览器和服务器资源的特征值来决定是否要发送文件内容,如果一样就只发送304 Not Modified
;Expires
: 设置过期时间,是绝对时间;Last-Modified
: 以时刻作为标识,无法识别一秒内进行多次修改的情况,只要资源修改,无论内容是否发生实质性变化,都会将该资源返回客户端;If-None-Match
: 当客户端发送GET
请求时,如果之前已经键相用资源的请求时,并且服务器返回了ETag
,那么客户端可以将ETag
的值添加到If-None-Match
头中,当再次请求该资源时,客户端会将If-None-Match
头发送给服务器,服务器收到请求之后,会检查If-None-Match
投中的值是否与当前资源的ETag
值匹配:- 如果匹配,则表示客户端所请求的资源没有发生变化,服务器会返回状态码
304 Not Modified
,并且不返回实际的资源内容; - 如果
If-None-Match
头中的值与服务器上资源的ETag
值不匹配,说明资源发生了变化,服务器会正常返回资源,并返回状态码200 OK
;
- 如果匹配,则表示客户端所请求的资源没有发生变化,服务器会返回状态码
图解强缓存和协商缓存
在上面的内容中讲了这么多的理论, 你是否还是不太理解什么是 强缓存
和 协商缓存
啊,那么接下来我们就用几张图片来弄清楚这两者的区别。
强缓存
强缓存就是文件直接从本地缓存中获取,不需要发送请求。
首次请求
当浏览器发送初次请求时,浏览器会向服务器发起请求,服务器接收到浏览器的请求后,返回资源并返回一个Cache-Control
字段给客户端,在该字段中设置一些缓存相关的信息,例如最大过期时间。
再次请求
在前面的基础上,浏览器再次发送请求,浏览器一节接收到Cache-Control
的值,那么这个时候浏览器它会首先检查它的Cache-Control
是否过期,如果没有过期则直接从本地缓存中拉取资源,返回割到客户端,则无需再经过服务器。
缓存失效
强缓存有过期时间,那么就意味着总有一天缓存会失效,如果客户端的 Cache-Control
失效了,那么它就会像首次请求中一样,重新向服务器发起请求,之后服务器会再次返回资源和 Cache-Control
的值。
协商缓存
协商缓存也叫做对比缓存,服务端判断客户端的资源是否和服务端的一样,如果一样则返回 304
,反之返回 200
和最新的资源。
初次请求
如果客户端是第一次向服务器发出请求,则服务器返回资源和对应的资源标识给浏览器,该资源标识就是对当前所返回资源的唯一标识,可以是 ETag
或者是 Last-Modified
。
之后如果浏览器再次发送请求是,浏览器就会带上这个资源表,此时服务端就会通过这个资源标识,可以判断出浏览器的资源跟服务器此时的资源是否一致,如果一致则返回 304 Not Modified
,如果不一致,则返回 200
,并返回资源以及新的资源标识。
不同刷新操作方式,对强制缓存和协商缓存的影响
不同的刷新操作方式对于强制缓存和写上缓存的影响如下:
普通刷新(
F5
或刷新按钮
):- 强制缓存的影响: 浏览器忽略强制缓存,直接向服务器发送请求,获取最新的资源,也就是强制缓存失效;
- 协商缓存的影响: 浏览器放带有缓存验证的字段的请求,浏览器会根据验证结果返回新的资源或者
304 Not Modified
;
强制刷新(
Ctrl+F5
或Shift+刷新按钮
):- 强制缓存的影响: 同上,强制缓存失效;
- 协商缓存的影响: 浏览器发送不带缓存验证字段的请求,服务器返回新的资源,不进行验证,也就是协商缓存失效;
禁用缓存刷新(
DevTools
中的Disable cache
或Network
勾选Disable cache
):- 强制缓存的影响: 同上,强制缓存失效;
- 协商缓存的影响: 浏览器会发送带有缓存验证字段的请求,服务器会根据验证结果返回新的资源或
304 Not Modified
;
这玩意也就图一乐,一般出现了问题我都是直接重启......
总结
总的来说,强制缓存是通过在请求中添加缓存策略,判断缓存是否有效,避免发送请求到服务器。而协商缓存是通过条件请求与服务器进行通信,验证缓存是否仍然有效,并在服务器返回适当的响应状态码和缓存策略。
强制缓存可以减少对服务器的请求,加快资源加载速度,但可能无法获取到最新的资源。协商缓存能够验证资源的有效性,并在需要时获取最新的资源,但会增加对服务器的请求。选择使用哪种缓存策略取决于具体的应用场景和资源的特性。
本文转载于:
https://juejin.cn/post/7248235392284721209
如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。
关键词:
记录--强制缓存这么暴力,为什么不使用协商缓存_世界速递
警犬飓风累计缴毒近百公斤_热讯
今日热议:巴基斯坦信德省发生交通事故 造成至少6人死亡
热点在线丨个性化定制、主题研学,暑期游玩法“上新”持续升温
拍摄精美!华为nova11活动价3199元|天天快看
热点在线丨视频丨你好邵阳,早安——邵水桥
奥飞数据(300738.SZ):两大核心算力节点廊坊固安数据中心和广州南沙数据中心项目在今年已实现首期交付
天天快讯:推进算力互联互通战略落地 闻库提出三点建议
暴雨黄色预警!广西海南等地部分地区有大到暴雨_当前讯息
百元保费保障百万 惠民保高增长下存隐忧
红杉中国苏凯:不会过度焦虑,要更主动出击|当前播报
我国靶材市场将达到431亿元,ITO是HJT光伏电池生产主流靶材-焦点信息
互动|芭田股份:与中科院钠离子电池材料合作处于实验室阶段-天天聚看点
苹果头显发布,MR头显能否开启苹果公司新的“iphone时刻”?|钛度热评 天天消息
国网自贡供电公司:文化下基层 浸润“匠人”心 即时看
河南加速领跑超硬材料赛道 环球简讯
环球看点!全国首个“风火储”打捆外送的沙戈荒新能源大基地项目预计今年6月底并网发电
粤港澳大湾区车展新能源车盘点,腾势N7、小鹏G6等-世界滚动
债基“回血”,限购令频出,基民体验冰火两重天 每日观察
焦点精选!默沙东治疗胃癌III期研究未达到主要终点
当前聚焦:国抽!修正药业、葵花集团子公司出现药品不合格!
国产CPU正式出口 大批量产供货|环球今日报
河南省独一无二的“紫金太岁”,就在济源王屋山,却严禁游客拍照
2023年女足世界杯开幕倒计时25天庆祝活动在悉尼举行|环球即时
中老两国禁毒部门密切合作成功侦破“12.04”中国移民警察蔡晓东被杀害案-全球焦点
环球热议:兰州一化工企业酸性水罐闪爆,官方:事故发生在检修期间,未造成污染和伤亡
80多部影片陆续定档 暑期档推动电影市场回暖-每日热文
衡东县警方为营商环境保驾护航
上银基金一周早知道| 多举措提振消费,哪些赛道值得关注?
端午档票房强劲复苏!这部影片吸金超5亿元|速讯
中经评论:人工智能如何应对气候变化 天天快报
当前热门:晒后,最应该做的事其实是......
当前速读:高考查分的心情你还记得吗?一起沉浸式体验
预算2063.0万元 山东第一医科大学采购生物型原子力显微镜等设备
先导智能(300450.SZ):未来海外订单量将保持上升趋势_环球资讯
观车 · 论势 || 特斯拉技术开源背后的“小九九”-天天速递
不回勇士?追梦格林下家3选1,湖人搅局,黑马或大合同逆袭抢人
瓦格纳人员撤离俄南部军区总部所在区域
天天微速讯:职工转岗就业打造森林旅游经济产业链 绿色转型见成效
焦点热议:宁波鄞州农商银行合计被罚120万:因贷款“三查”不尽职等
全国土地日丨节约集约促发展 守好“大国粮仓”_全球聚焦
焦点信息:新技术“引流”,这个“6·18”有点不一样
空客、波音等国际航空巨头:对中国航空市场充满信心,将携带最新机型参加第十五届中国航展_今日热搜
美军里根号航母访问越南 全球短讯
天承科技(688603.SH):网上路演6月27日9:00-12:00|今日关注
三五互联再上演资本“戏码”:疑点频出引监管关注,多次不良记录浮出水面!_微速讯
职工转岗就业打造森林旅游经济产业链 绿色转型见成效
天天时讯:美国一列货运火车压垮桥梁坠入河中:车厢内危险品泄漏
6月23日MTBE外盘市场收盘价下调-焦点热文
金观平:毫不动摇严守耕地红线
《文字玩出花》血压飙升七攻略
天天通讯!图像拼接算法的基本原理_图像拼接算法
“果园帮帮团”解决果农急难愁盼问题(图片)
618厨卫刚需品类市场总结报告:似大浪淘沙,长久见真金
环球短讯!中望cad2018激活码谁有_中望cad2018激活码
每日动态!《明暗面-独行长路》4-7章存档/预览
世界聚焦:电影《孙子从美国来》_电影 孙子从美国来 免费版
警方打击黑帮暴力罪案拘65人,破武器库检电枪长剑开山刀_快资讯
世界最新:银行卡密码忘记了怎么办 银行卡密码忘记了怎么办才能解开
夏天用这些东西,小心“引火上身”!
ldquo rdquo转义_ldquo 扎赉诺 rdquo 这几个字的读音是什么 焦点速读
全球观速讯丨鼓励“衣食住行”转向低碳消费
黄花菜红烧肉的做法?
最新消息:男子每天1斤杨梅狂吃20天要做血透
世界微速讯:宏编程鼠标怎么设置巅峰战舰_宏编程鼠标怎么设置
无锡国联3亿元超短债将于7月7日兑付 利率2.43% 天天快资讯
琼海启动本年度适龄女性HPV疫苗接种
郭珍霓:眼角眉梢皆风情,媚骨天成“剧抛脸”,为何不火|世界热闻
缺氧乔木星体是什么
csgo饰品秒提入库的开箱网站盘点 2023csgo开箱秒提货网站分享
《最终幻想16》MTC遭恶意刷差评 大量0分或1分
汶川地震“敬礼娃娃”郎铮基本确定选择北大|今日观点
微动态丨幼小衔接待花开 双向奔赴筑未来--安阳市文峰区幼小衔接第四组双向交流教研活动
2023年10月浙江省自学考试报名公告
通川区全力保障节日期间市场安全 全球今日报
全球简讯:百奥赛图IPO:实控人夫妇控制27.57%表决权,均拥有美国永久居留权
2023上海高考综评志愿填报时间及入口_世界视讯
煤市由盛转衰 煤价即将回落 全球消息
焦点速读:星辰新能获近亿元Pre-A轮投资
焦点播报:CDK踢欧青赛都吐饼,米兰重点打造的新星仍欠火候
今日热讯:我国南方16条河流发生超警洪水
青豆是豌豆吗(青豆和豌豆的区别)
热点聚焦:“非遗民俗+传统文化”营造主客共享新空间 构建文化和旅游深度融合新场景
着墨数字赋能 浙江细绘未来乡村“共富图”_世界热头条
中央纪委国家监委宣传部副部长、一级巡视员郝宗强接受中央纪委国家监委审查调查
全球观察:新疆汉通跨境物流有限责任公司获得政府补助196万元
上交所中报预约时间出炉,康缘药业拔得头筹 天天头条
廖品正国医大师工作室传承中心挂牌仪式举行
【全球聚看点】锦屏县举行“铁拳风暴”行动誓师动员大会 向违法犯罪发力
2023年全国“安全宣传咨询日”主场活动在湖北武汉举行
看点:2023年浙江高龄津贴发放标准是多少?浙江高龄补贴年龄是多少
广东海事局发布航行警告:部分海域军事训练
颜色的古诗句有哪些 关于颜色的诗句有哪些?_环球热推荐
即时:“绳”采飞扬!双福二小跳绳队参加全国跳绳联赛获佳绩
我国快递业发展彰显强大韧性 今年提前34天达到600亿件_观点
宁波鄞州农商银行合计被罚120万:因贷款“三查”不尽职等_当前速看
调休再度引热议!专家:完善带薪休假制度是关键_环球关注
数字文明尼山对话|国信1号,工业化养殖的No.1 世界焦点
每日热闻!央行本周净投放5120亿!机构:资金面预计稳中偏宽
国家电影局:2023端午档票房9.09亿元 影史第二 微速讯