面试官:你了解HTTP的缓存技术吗?
创作时间:
作者:
@小白创作中心
面试官:你了解HTTP的缓存技术吗?
引用
CSDN
1.
https://blog.csdn.net/scholar_yao/article/details/137013817
HTTP缓存技术是Web开发中一个重要的优化手段,它能够显著提升网站的加载速度和用户体验。本文将详细介绍HTTP缓存的两种实现方式:强制缓存和协商缓存,帮助读者理解其工作原理和具体应用。
缓存技术的使用可以说非常普遍。
举个例子,我们通过浏览器访问某些网站时,如果重复访问同一个页面每次都向服务器发送请求获取数据,这样显然效率和使用体验不是很好,所以浏览器将重复性HTTP请求的数据缓存在本地。
HTTP缓存的实现有两种方式,分别是强制缓存和协商缓存。
强制缓存
强制缓存是浏览器判断缓存数据是否过期,如果未过期则使用缓存数据;是否使用缓存的决定者是浏览器。
强制缓存是使用HTTP请求的响应头部字段实现的,表示资源在客户端缓存的有效期。如果两个字段同时设置的话,Cache-Control的优先级更高。
Cache-Control:相对时间
Expires:绝对时间
强制缓存的具体流程:
浏览器第一次访问服务器中的数据时,服务器响应数据的同时在响应头中通过Cache-Control设置缓存过期的时间。
当浏览器再次请求服务器中该数据时,浏览器会先通过请求数据的时间与Cache-Control中设置的缓存过期时间计算数据是否过期。未过期则直接使用缓存数据,过期则再次请求服务器获取数据。
服务器再次收到请求后会响应数据,同时更新Cache-Control中的缓存过期时间。
协商缓存
协商缓存是浏览器向服务器发送请求获取数据,服务器并不响应数据给浏览器,而是返回给浏览器一个响应状态码304,这个状态码的意思是告诉浏览器可以使用本地缓存的数据;是否使用缓存的决定者是服务器。
协商缓存是使用HTTP请求的请求头部和响应头部中的字段实现的。
第一种:
请求头部的If-Modified-Since:请求时携带Last-Modified中的时间。
响应头部的Last-Modified:响应数据的最后一次修改时间。
第二种:
请求头部的If-None-Match:请求时携带Etag中的唯一标识。
响应头部的Etag:响应资源的唯一标识。
第一种是基于时间实现的,第二种是基于响应资源的唯一标识实现的;第二种实现方式可以更好的判断资源是否被修改过,从而避免篡改导致不可靠问题。
如果第一次请求数据后,服务器返回的响应头中同时包含了Last-Modified和Etag两个字段,那么再次请求时请求头也会携带这两个字段的信息,但是Etag的优先级更高。
注意:使用协商缓存前都会先进行强制缓存的判断,只有强制缓存判断数据过期后,才会发起带有协商缓存字段的请求。
使用第一种方式和第二种方式实现协商缓存的流程基本一致,区别就在于缓存过期后,再次请求该数据时请求头部携带的是数据最后一次修改时间还是数据唯一标识,服务器根据携带的内容进行判断并做出响应。
下面是使用第二种方式实现协商缓存的具体流程:
浏览器第一次访问服务器的数据时,服务器返回数据的同时返回一个由该响应数据生成的唯一标识。
浏览器再次请求服务器中的该数据时,会先检查强制缓存是否过期;如果没有过期则使用缓存数据;如果已经过期则向服务器发送HTTP请求,请求头部通过If-None-Match字段携带Etag中的唯一标识。
服务器收到请求后通过If-None-Match中的唯一标识与请求数据生成唯一标识对比;如果一致则返回状态码304;不一致则返回状态码200和请求数据,并在响应头部加上新的Etag唯一标识。
浏览器如果收到状态码304则从缓存获得数据,否则更新缓存的数据。
热门推荐
一文详解PCB基板材料:从基础构成到分类标准
服务业都包括什么行业 现代服务业行业大盘点
小鼻子的大冒险:儿童鼻病毒防治全攻略
极简科普丨牛奶生产常见的杀菌方式有巴氏杀菌法和超高温灭菌技术( UHT )。
跑鞋中底材质大揭秘:发泡材料与机械结构全解析
美的标准并不统一,别被容貌焦虑影响了
医院床单位终末消毒流程
世界手卫生日 | 感染防控,“手”先出发
【青医科普】解锁健康排便密码:告别便秘的小贴士
北大农研院李博生团队发表超长和选择性测序方法,实现高效获得植物完整T2T基因组
DNA提取与鉴定实验全流程解析:技术步骤与应用
基于知识图的减脂食谱推荐系统
Word图文混排技巧方法
《我的世界》方块指令大全:从结构方块到屏障方块的使用指南
消化的智慧:选择对的食物,让肠胃更轻松
拟制血亲和姻亲:传统家庭关系的现代演变
合同存在问题说明撰写技巧与实例解析
南京市启动2025垃圾分类志愿者入户宣传行动
冬天拉肚子是怎么回事 冬季腹泻怎么治疗
延迟退休落地前,普通人如何提前规划财务?做好这5点很重要
如何根据API进行接口对接
老旧小区改造的成本如何分配?
抗衰老在行动:都在喊“风口来了”,我国养老产业发展的真正“拐点”何时到来?
中国智慧健康养老产业加快发展 科技赋能银发经济
电动消防车智能化:智能调度,提升响应速度
放屁很臭,说明肠胃有问题?
剪纸的镂空里藏着“守艺人”的别样情怀
牙龈萎缩牙齿松动了怎么办
干冰在多少度保存最好呢
深入了解平均动脉压的临床意义