最新要闻
- 世界新消息丨国美电器董事长发文“反思”国美失势了:核心要务是活下去
- 1岁萌娃躺地耍赖父母转身离开 这招对90后不管用:网友点赞
- 天天速递!谁最靠谱?四大品牌23万块硬盘最新故障率报告公布:希捷让人看不懂
- 骁龙8+性能被榨干了!一加Ace 2散热拉满:极致流畅
- 【时快讯】《狂飙》大结局!高启强手机穿帮:提前两年用上iPhone 8 Plus
- 《狂飙》的艺术总监是张译:本人主演电影票房破200亿
- 环球关注:国内第一大加速器里程碑诞生!面积约合20余个足球场
- 环球视讯!《流浪地球2》导演郭帆:希望能为科幻电影蹚一条路
- 玩《原神》最爽的手机!一加Ace 2超10万人预约
- 环球今日报丨宏碁推出TravelMate B系列笔记本:Intel N系列超低功耗U
- 游客偷带食物喂兔子致大批死亡:还喂发烂叶子 遭网友疯狂谴责
- 全球速递!海尔发布博越G43系列笔记本:搭载国产X86 CPU
- 今日精选:尴尬一幕:近年来论文数量激增 但科技界没有创新 3大原因
- 环球微资讯!300人研发三年!腾讯自研开放世界生存手游《黎明觉醒:生机》定档
- 今日聚焦!女子价值近20万元的钻戒丢失在高铁站 后续来了
- 美国一公司计划复活灭绝的渡渡鸟:还有猛犸象
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
环球新消息丨【缓存】有关HTTP缓存的总结
HTTP 缓存
缓存的目的
主要作用是可以加快资源获取速度,提升用户体验,减少网络传输,缓解服务端的压力。
强缓存
不需要发送请求到服务端,直接读取浏览器本地缓存,显示的 HTTP 状态码是 200 ,强缓存又分为 Disk Cache (存放在硬盘中)和
(相关资料图)
Memory Cache (存放在内存中),存放的位置是由浏览器控制的。是否强缓存由 Expires、Cache-Control 和 Pragma 3 个 Header 属性共
同来控制。浏览器在向服务器发送http请求的时候,服务器会将缓存规则返给http响应报文的http头和请求结果一起返回给浏览器
Expires绝对时间
Expires: Wed, 22 Oct 2018 08:41:00 GMT
Expires
是HTTP/1
的产物,表示资源会在Wed, 22 Oct 2018 08:41:00 GMT
后过期,需要再次请求。并且Expires
受限于本地时间,如果修改了本地时间,可能会造成缓存失效。
Cache-control相对时间
max-age:单位是秒,缓存时间计算的方式是距离发起的时间的秒数,超过间隔的秒数缓存失效no-cache:不使用强缓存,需要与服务器验证缓存是否新鲜no-store:禁止使用缓存(包括协商缓存),每次都向服务器请求最新的资源private:专用于个人的缓存,中间代理、CDN 等不能缓存此响应public:响应可以被中间代理、CDN 等缓存must-revalidate:在缓存过期前可以使用,过期后必须向服务器验证
Cache-control: max-age=30
Cache-Control
出现于HTTP/1.1
,优先级高于Expires
。该属性值表示资源会在30
秒后过期,需要再次请求。Cache-Control
可以在请求头或者响应头中设置,并且可以组合使用多种指令- 置Cache-Control的值为“public, max-age=xxx”,表示在xxx秒内再次访问该资源,均使用本地的缓存,不再向服务器发起请求。
情况主要有三种
1)不存在该缓存结果和缓存标识,强制缓存失效,则直接向服务器发起请求(跟第一次发起请求一致)
2)协议中有这种缓存结果和缓存标识,但是结果已经失效,强制缓存失效,则使用协商缓存
3)协议中存在缓存结果和缓存标识,且该结果尚未生效,强制缓存生效,直接返回该结果
强缓存缺点:
如果在xxx秒内,服务器上面的资源更新了,客户端在没有强制刷新的情况下,看到的内容还是旧的。如果发布新版本的时候,后台接口
也同步更新了,那就gg了。有缓存的用户还在使用旧接口,而那个接口已经被后台干掉了。怎么办?
协商缓存
当浏览器的强缓存失效的时候或者请求头中设置了不走强缓存,并且在请求头中设置了If-Modified-Since 或者 If-None-Match 的时候,会
将这两个属性值到服务端去验证是否命中协商缓存,如果命中了协商缓存,会返回 304 状态通知浏览器从缓存中读取资源,并且响应头会
设置 Last-Modified 或者 Etag 属性。
协商缓存可以通过 Last-Modified
/If-Modified-Since
和ETag
/If-None-Match
这两对 Header 来控制。
Last-Modified 与If-Modified-Since都是用来记录页面的最后修改时间。当客户端访问页面时,服务器会将页面最后修改时间通过 Last-
Modified 标识由服务器发往客户端,客户端记录修改时间,再次请求本地存在的cache页面时,客户端会通过 If-Modified-Since 头将先前
服务器端发过来的最后修改时间戳发送回去,服务器端通过这个时间戳判断客户端的页面是否是最新的,如果不是最新的,则返回新的内
容,如果是最新的,则 返回 304 告诉客户端其本地 cache 的页面是最新的,于是客户端就可以直接从本地加载页面了,这样在网络上传
输的数据就会大大减少,同时也减轻了服务器的负担。
Last-Modified、If-Modified-Since
Last-Modified
与If-Modified-Since
的值都是 GMT 格式的时间字符串,代表的是文件的最后修改时间。
在服务器在响应请求时,会通过
Last-Modified
告诉浏览器资源的最后修改时间。浏览器再次请求服务器的时候,请求头会包含
If-Modified-Since
字段,后面跟着在缓存中获得的最后修改时间。服务端收到此请求头发现有
if-Modified-Since
,则与被请求资源的最后修改时间进行对比,如果一致则返回 304 和响应报文头,浏览器只需要从缓存中获取信息即可。如果已经修改,那么开始传输响应一个整体,服务器返回:200 OK
但是在服务器上经常会出现这种情况,一个资源被修改了,但其实际内容根本没发生改变,会因为Last-Modified
时间匹配不上而返回了
整个实体给客户端(即使客户端缓存里有个一模一样的资源)。为了解决这个问题,HTTP/1.1 推出了Etag
。Etag 优先级高与Last-
Modified
。
Etag、If-None-Match
Last-Modified的缺点
1. 最小单位是秒。也就是说如果我短时间内资源发生了改变,Last-Modified 并不会发生变化; 2. 周期性变化。如果这个资源在一个周期内修改回原来的样子了,我们认为文件是没有变化的是可以使用缓存的,但是 Last-Modified 记录的是上次修改时间,即使文件没有变化,但修改时间变了,所以它认为缓存失效
Etag
为了解决Last-modifed不准确的问题,后面引入了 Etag 。
Etag 一般是由文件内容 hash 生成的,也就是说它可以保证资源的唯一性,资源发生改变就会导致 Etag 发生改变。
同样地,在浏览器第一次请求资源时,服务器会返回一个 Etag 标识。当再次请求该资源时, 会通过 If-no-match 字段将 Etag 发送回服务
器,然后服务器进行比较,如果相等,则返回 304 表示未修改。
1)协商缓存生效,返回304,
2)协商缓存失效,返回200和请求结果结果
强缓存和协商缓存区别
是否需要向服务器发送请求验证本地缓存是否依旧有效。协商缓存,就是需要和服务器进行协商,最终确定是否使用本地缓存。
总结
通过前文,我们了解到 HTTP 缓存主要分:
- 强制缓存
- 协商缓存。
强制缓存由 Cache-Control
,Exipres
(HTTP1.0)控制。浏览器直接读本地缓存,不会再跟服务器端交互,状态码 200。
协商缓存由 Last-Modified
/ If-Modified-Since
, Etag
/If-None-Match
实现,每次请求需要让服务器判断一下资源是否更新过,从而
决定浏览器是否使用缓存,如果是,则返回 304,否则重新完整响应。
参考文章
web前端面试前端缓存的方式
前端缓存最佳实践
图解 HTTP 缓存
HTTP 缓存
深入理解浏览器的缓存机制
-
如何使用单纯的`WebAssembly`
一般来说在 netcore使用WebAssembly都是Blazor,但是Blazor渲染界面, netcore也提供单纯的WebAssembl...
来源: 环球新消息丨【缓存】有关HTTP缓存的总结
如何使用单纯的`WebAssembly`
世界新消息丨国美电器董事长发文“反思”国美失势了:核心要务是活下去
1岁萌娃躺地耍赖父母转身离开 这招对90后不管用:网友点赞
天天速递!谁最靠谱?四大品牌23万块硬盘最新故障率报告公布:希捷让人看不懂
Blazor入门100天 : 身份验证和授权 (1)
2023牛客寒假算法基础集训营5
Spring:AOP
世界观察:试用ChatGPT
骁龙8+性能被榨干了!一加Ace 2散热拉满:极致流畅
【时快讯】《狂飙》大结局!高启强手机穿帮:提前两年用上iPhone 8 Plus
《狂飙》的艺术总监是张译:本人主演电影票房破200亿
环球关注:国内第一大加速器里程碑诞生!面积约合20余个足球场
环球视讯!《流浪地球2》导演郭帆:希望能为科幻电影蹚一条路
玩《原神》最爽的手机!一加Ace 2超10万人预约
环球今日报丨宏碁推出TravelMate B系列笔记本:Intel N系列超低功耗U
游客偷带食物喂兔子致大批死亡:还喂发烂叶子 遭网友疯狂谴责
全球速递!海尔发布博越G43系列笔记本:搭载国产X86 CPU
今日精选:尴尬一幕:近年来论文数量激增 但科技界没有创新 3大原因
环球微资讯!300人研发三年!腾讯自研开放世界生存手游《黎明觉醒:生机》定档
今日聚焦!女子价值近20万元的钻戒丢失在高铁站 后续来了
VS Winform程序制作安装包
【世界聚看点】FluentReader 高颜值的rss阅读器
全球热头条丨易基因|细菌全基因组甲基化纳米孔测序(ONT):技术推介
每日简讯:我在京东做研发 | 揭秘支撑京东万人规模技术人员协作的行云DevOps平台
环球热推荐:再探前端低代码的“野路子”
美国一公司计划复活灭绝的渡渡鸟:还有猛犸象
PC最坏的日子快过去了 苏妈放言:AMD即将触底反弹
环球快讯:500块的产品只要10元 小米商城BUG价遭爆单 后续来了:退单返券
全球微动态丨256G不够了!博主买的小米12S Pro 512G已用掉300多G:光微信就70G
快讯:官方回应小爱下线山东话等方言识别 :无需专门设置也能听懂
记录--原生 canvas 如何实现大屏?
环球关注:鲁大师1月新机性能/流畅榜发布:一加11无悬念夺冠
全球资讯:剧毒可致死!澳大利亚失踪放射性胶囊被寻回:“大海捞针”式搜寻
【报资讯】女子宝娟嗓20年疑似癔症:16岁突然变哑、嗓子却没问题
《流浪地球3》粮食稳了?中科院合成淀粉蛋白新突破
环球今热点:动物园猴子打架输了逃到狮子园:结果好险
Java多线程:Future和FutureTask
【全球时快讯】MySQL-JDBC反序列化分析
快报:市监局回应12.4万保时捷遭抢购后下架:规模较大 正加紧调查
每日快讯!下饭神器:乌江榨菜30袋19.9元大促
快消息!魅族20就快来了!已有魅友抢先体验:称“感觉不错”
焦点快看:故障率惊人!三星昔日旗舰SSD 980 Pro严重翻车 用户投诉多到爆官方出手修复
世界快播:雷军对日本任天堂公司欣赏至极:推崇其为“世界的主宰”
全球新动态:如何将使用中的域名平滑迁移到京东云?(以原域名注册、域名解析都在万网为例)
环球简讯:最新最常用的Windows/office激活工具
世界今热点:HTTP学习笔记3-HTTP报文
关注:【深读】网络测控系统时钟同步PTP时间同步服务器
环球快报:Git 客户端基本使用及新手常见问题
“造假”作弊频发 ChatGPT官方鉴别器紧急发布!不想却遭遇群嘲
15万!特斯拉新车Model Q到底有吗:网友喊话如果这外形必冲?
世界热点!终于告别祖传67W!小米13 Ultra升级90W快充
环球热资讯!咋想的 雪佛兰SUV加油站里试图插队:男女肉身阻挡他车通行
每日看点!三年亏损170亿 昔日新能源车一哥“北汽蓝谷”跌下神坛
分享会上狂吹MySQL的4大索引结构,没想到大家的鉴赏能力如此的~~~~
“靠服装就能抗菌抗病毒” 真有效还是智商税?
每日快报!大爷撞上奥迪老伴下车后秒晕倒 指责对方为啥停路边:交警到场结局舒适
环球观察:别想歪了!最新研究称西地那非“伟哥”真的能延长男性寿命
【算法训练营day35】LeetCode860. 柠檬水找零 LeetCode406. 根据身高重建队列 LeetCode452. 用最少数量的箭引爆气球
MAUI新生6.4-集合内容类控件难点:CollectionView
今日最新!5万年一遇!绿色“天外来客”正靠近地球:有望肉眼观测
网易发布暴雪游戏退款说明:退款申请截止到6月30日
这才是过年聚会的家 游戏区、棋牌区、动画片区 网友:太和谐了
世界微头条丨三大运营商合力:我国有11亿5G用户!4G用户瑟瑟发抖 求别降速
全球最资讯丨大型国有银行采购摩尔线程国产显卡!造型首次公开
【世界新要闻】try catch finally,try里有return,finally还执行么?
基于k8s的zookeeper搭建
读Java8函数式编程笔记07_设计和架构的原则
20万能买到?极氪003最新预告:3米级加速秒杀百万超跑
滚导和盘托出未来规划 超人新片定档2025年
全球观察:12.4万买下保时捷帕纳梅拉 涉事博主:无成本新车营销成功案例
3层果肉 层层爆浆 榴莲西施榴莲千层蛋糕6寸:两盒69.9元
环球最资讯丨博主怒斥极氪汽车站不起来 居然致敬燃油车奥迪Q3
三星s3370手机有触控笔吗?三星s3370手机参数
怎么删除地址栏里的网址记录?如何恢复删除的网址记录?
tdscdma手机怎么样?tdscdma手机铃声静音怎么解除?
魅族m8什么时候上市的?魅族m8手机参数
All Share Play是什么意思?All Share Play功能是什么?
一劳永逸打一地名是什么?一劳永逸和一蹴而就的区别是什么?
怒晴湘西讲的是什么故事?怒晴湘西大结局是什么?
阳光大道是什么意思?阳光大道打一个生肖是什么?
世界聚焦:linux服务器运行java项目, 监控查看内存、储存空间和cpu占用率
热点!火山引擎 DataTester:0 代码也能实施 A/B 测试的实验平台
世界滚动:一看就懂!任务提交的资源判断在Taier中的实践
全球热文:全球首个面向遥感任务设计的亿级视觉Transformer大模型
萝卜喝醉了会变成什么?脑筋急转弯大全
南国新川是什么意思?南国新川在哪里?
可测水温、室温、体温 一机多用:可孚红外电子体温枪29.9元发车
全球热点评!投入一亿建立优化实验室:一加Ace 2《原神》表现稳了
李一男造车“破梦重圆”?自游家NV现身奇瑞商用车总部
天天动态:男孩撸猫后发烧12天:腋下长鸡蛋大肿块
环球热推荐:知名车评人侮辱特斯拉被判赔10万 车评人上诉
activiti审批流源码,落地版教程
天天新消息丨easy excel 导入导出
全球最资讯丨@vue/cli 插件开发之自动根据目录列表生成别名配置
国内首家!奇瑞霸气官宣:旗下四大品牌全系车型终身质保
环球观察:30年前拍不成 现在香爆!郭帆拍《流浪地球3》 图恒宇写“4”原因揭晓
天天要闻:颜值碾压BBA 马自达旗舰CX-90全球首发:国产后或砍3.3T
支付巨头PayPal“挥刀”裁员7%:2000名员工将被辞退
当前快报:反向操作?特斯拉降价后 宝马、牧马人等油车主动涨价