HTTP缓存机制及原理

彻底弄懂HTTP缓存机制及原理

  • 在介绍HTTP缓存之前,作为知识铺垫,先简单介绍一下HTTP报文
    • HTTP报文就是浏览器和服务器间通信时发送及响应的数据块。
      浏览器向服务器请求数据,发送请求(request)报文;服务器向浏览器返回数据,返回响应(response)报文。
      报文信息主要分为两部分
      • 1.包含属性的首部(header)--------------------------附加信息(cookie,缓存信息等)与缓存相关的规则信息,均包含在header中
      • 2.包含数据的主体部分(body)-----------------------HTTP请求真正想要传输的部分
  • 缓存规则解析
    为方便大家理解,我们认为浏览器存在一个缓存数据库,用于存储缓存信息。
    • 在客户端第一次请求数据时,此时缓存数据库中没有对应的缓存数据,需要请求服务器,服务器返回后,将数据存储至缓存数据库中。
      在这里插入图片描述
  • HTTP缓存有多种规则,根据是否需要重新向服务器发起请求来分类,我将其分为两大类(强制缓存,对比缓存)
  • 在详细介绍这两种规则之前,先通过时序图的方式,让大家对这两种规则有个简单了解。
    • 已存在缓存数据时,仅基于强制缓存,请求数据的流程如下在这里插入图片描述
    • 已存在缓存数据时,仅基于对比缓存,请求数据的流程如下在这里插入图片描述
  • 对缓存机制不太了解的同学可能会问,基于对比缓存的流程下,不管是否使用缓存,都需要向服务器发送请求,那么还用缓存干什么?
    • 这个问题,我们暂且放下,后文在详细介绍每种缓存规则的时候,会带给大家答案。
  • 我们可以看到两类缓存规则的不同,强制缓存如果生效,不需要再和服务器发生交互,而对比缓存不管是否生效,都需要与服务端发生交互。
    • 两类缓存规则可以同时存在,强制缓存优先级高于对比缓存,也就是说,当执行强制缓存的规则时,如果缓存生效,直接使用缓存,不再执行对比缓存规则。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值