什么是浏览器缓存
浏览器缓存(Brower Caching)是浏览器在本地磁盘对用户最近请求过的文档进行存储,当访问者再次访问同一页面时,浏览器就可以直接从本地磁盘加载文档 。
为什么要使用浏览器缓存
1.减少了冗余的数据传输,节省了网费
2.减少了服务器的负担,大大提升了网站的性能
3.加快了客户端加载网页的速度
4.更好的用户体验
浏览器缓存类型
浏览器缓存主要有两类:缓存协商和彻底缓存,也有称之为协商缓存和强缓存 。
1.强缓存:强制缓存整体流程比较简单 , 就是在第一次访问服务器取到数据之后,在过期时间之内不会再去重复请求 。实现这个流程的核心就是如何知道当前时间是否超过了过期时间 。
强制缓存的过期时间通过第一次访问服务器时返回的响应头获取 。在 http 1.0 和 http 1.1 版本中通过不同的响应头字段实现 。
在 http 1.0 版本中,强制缓存通过 Expires 响应头来实现 。expires 表示未来资源会过期的时间 。也就是说,当发起请求的时间超过了 expires 设定的时间,即表示资源缓存时间到期,会发送请求到服务器重新获取资源 。而如果发起请求的时间在 expires 限定的时间之内,浏览器会直接读取本地缓存数据库中的信息(from memory or from disk),两种方式根据浏览器的策略随机获取 。
在 http 1.1 版本中,强制缓存通过 Cache-Control 响应头来实现 。Cache-Control 拥有多个值:
private:客户端可以缓存
public:客户端和代理服务器均可缓存;
max-age=xxx:缓存的资源将在 xxx 秒后过期;
no-cache:需要使用协商缓存来验证是否过期;
no-store:不可缓存
最常用的字段就是 max-age=xxx请求中时间戳与服务器,表示缓存的资源将在 xxx 秒后过期 。一般来说请求中时间戳与服务器,为了兼容,两个版本的强制缓存都会被实现 。
强制缓存只有首次请求才会跟服务器通信,读取缓存资源时不会发出任何请求,资源的 Status 状态码为 200,资源的 Size 为 from memory 或者 from disk ,http 1.1 版本的实现优先级会高于 http 1.0 版本的实现 。
2.协商缓存:协商缓存与强制缓存的不同之处在于,协商缓存每次读取数据时都需要跟服务器通信,并且会增加缓存标识 。在第一次请求服务器时,服务器会返回资源,并且返回一个资源的缓存标识 , 一起存到浏览器的缓存数据库 。当第二次请求资源时,浏览器会首先将缓存标识发送给服务器,服务器拿到标识后判断标识是否匹配 , 如果不匹配,表示资源有更新,服务器会将新数据和新的缓存标识一起返回到浏览器;如果缓存标识匹配 , 表示资源没有更新,并且返回 304 状态码,浏览器就读取本地缓存服务器中的数据 。
【彻底了解浏览器强缓存和协商缓存,这一篇就够了】本文到此结束,希望对大家有所帮助!
猜你喜欢
- 十佳化妆培训学校排名 毛戈平化妆学校上榜 第一是中国流行风向标
- 营养土和菜园土用来养花有诸多注意事项,新手园丁多学学了
- ?房贷利率明显下降,“银行”打电话叫客户转贷,这种做法靠谱吗?
- 请问夫妻想贷款买房,男方征信不好,女方能贷款下来吗?
- 新手妈妈福利来袭:超级实用宝宝科学护理一览表!值得收藏宝妈
- 如何添加HP打印机到无线网络?
- 信用卡逾期 夫妻首套商贷买房,首付20%,夫妻有一方征信不好
- 全国不动产“统一登记”了什么?与房地产税改革有何关系?
- 性病的潜伏期有多久?不知道的速来了解下!