应用层缓存技术-Http的强制缓存和协商缓存

1、Http强制缓存

         强制缓存流程: 在第一次访问服务器获取到数据后,在数据过期之前不在向服务器发起请求获取数据;因此实现此

流程的核心就是如何知道数据什么时间过期。

          强制缓存的过期时间是通过第一次访问服务器返回的响应头获取,在http1.0和http1.1版本中通过不同的响应头字段

来判断。

1.1) http1.0版本

       通过 Expires 响应头中来实现;expires 表示资源会过期的时间,在过期时间内浏览器不会再次向服务器发起请求,

而是直接读取本地缓存数据库(from memory or from disk)中的信息,两种方式根据浏览器的策略随机获取

1.2) http1.1版本

    强制缓存通过 Cache-Control 响应头来实现,Cache-Control有多个字段表示

private客户端可以缓存 
public客户端和代理服务器均可缓存 
max-age=xxx缓存资源将在xxx秒后过期最常用,为了兼容,两个版本的强制缓存都会被实现
no-cache需要使用协商缓存来验证是否过期 
no-store不可缓存 

 

 

 

 

 

 

 总结:强制缓存只有首次请求才会向服务器发起通信,读取缓存资源时不会跟服务器通信,资源的状态码status=200,

资源的 size 为 from memory 或者 from disk ,http1.1的优先级高于http1.0

2、Http协商缓存

        协商缓存和强制缓存的不同之处,就是协商缓存每次都需跟服务器通信,并会增加缓存标识,如果需要读取本地

缓存,则资源的状态码status=304.

        http1.0和http1.1的实现方式依然不同

2.1)Http1.0版本

             

2.2)Http1.1版本

      Http1.1版本,服务器通过Etag设置响应头缓存标识

 总结: 协商缓存每次都会与服务器交互,第一次是拿数据和缓存标识的过程,从第二次开始浏览器询问服务器资源

是否有更新,每次请求都会传输数据,如果命中缓存,则服务器返回的资源状态码为304,而不是200;为了浏览器

兼容问题两个版本的缓存都会被实现,Http1.1的优先级高于Http1.0。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值