http缓存机制

http缓存机制

按是否向服务器重新请求划分:强制缓存、对比缓存

强制缓存

响应头字段:

决定缓存是否失效的两个字段:Expires/Cache-Control

  • expires:http1.0产物,而现在浏览器基本都是http1.1,此字段决定缓存的到期时间,这个时间是由服务器端设定的,因此可能会和客户端时间存在误差,因此推荐使用cache-control

  • cache-control
    – 常见取值:
    private: 客户端可以缓存
    public: 客户端和代理服务器都可缓存
    max-age=xxx: 缓存的内容将在 xxx 秒后失效
    no-cache: 需要使用对比缓存来验证缓存数据(后面介绍)
    no-store: 所有内容都不会缓存

对比缓存

首次请求返回数据和缓存标识,再次请求带着缓存标识,若没过期返回304,使用缓存数据,若过期返回新的标识以及数据

last-modified/if-modified-since
  • 响应头字段:last-modified:资源最后被修改时间
  • 请求头字段:if-modified-since:如果资源最后修改时间在大于此时间,则返回新的数据,否则返回304
Etag / If-None-Match(优先级高于前两个):
  • 响应头字段:etag:资源的唯一标识
  • 请求头字段:if-none-match:使用上次etag返回的值,若与服务器此时的值相等,返回304使用缓存,否则返回新的数据以及标识

两者区别与关系:

  • 两类缓存规则的不同,强制缓存如果生效,不需要再和服务器发生交互,而对比缓存不管是否生效,都需要与服务端发生交互。
  • 两类缓存规则可以同时存在,强制缓存优先级高于对比缓存,也就是说,当执行强制缓存的规则时,如果缓存生效,直接使用缓存,不再执行对比缓存规则。
  • 强制缓存的使用主要基于时间设定,对比缓存主要基于资源标识,并交由服务器校验判断
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值