浏览期缓存流程-强缓存和协商缓存

概念

浏览器会将请求后的资源进行存贮为离线资源,当下次需要该资源时,浏览器会根据缓存机制决定直接使用缓存资源还是再次向服务器发送请求

作用

  • 减少了不必要数据的传输、降低服务器的压力
  • 加快了客户端访问速度
  • 增强用户体验

强缓存

不向服务端发送请求,强制使用缓存数据

实现方式

后端在响应头中返回Expires 和 Cache-Control

Expires :

http协议1.0的字端

缓存过期时间,用来指定资源到期的时间,是服务器端的具体的时间点

浏览器:使用expires到期时间和本地时间进行对比,如果本地时间被修改或者和服务器时间差距较大,造成不准确的问题

在这里插入图片描述

Cache-Control

Cache-Control 是 HTTP 1.1 的字段

约定过期时间的相对时间

在这里插入图片描述

当cache-control和expires同时存在cache-control的优先级会比expires高

协商缓存

当强缓存失效后,会使用协商缓存

协商缓存由服务器决定是否使用缓存

  1. 向服务器发送请求资源并携带标识

    Etag字段:表示请求资源在服务器的唯一标识,浏览器可以根据ETag值缓存数据,下次请求的时候以If-None-Match字段请求

    Last-Modified字段:用于标记请求资源的最后一次修改时间

  2. 服务器会进行判断浏览器缓存的资源是否真的失效是否更新

    真的失效,服务端已经更新,返回200,重新返回最新资源和缓存标识

    浏览器再次存入缓存

    后续再次从强缓存开始

  3. 缓存时间到了,但是资源没更新,就还使用本地的

    直接返回304

总结
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值