强缓存和协商缓存

本文详细介绍了强缓存和协商缓存的概念,包括浏览器如何利用Last-Modified,If-Modified-Since判断资源过期,以及Etag和If-None-Match在避免文件指纹问题上的优势。强调了Cache-Control和Expires的区别以及它们在缓存策略中的重要性。
摘要由CSDN通过智能技术生成

强缓存和协商缓存

强缓存

强缓存就是本地缓存。浏览器请求资源后,会把不常更改的资源,比如图片、CSS文件,存到本地缓存。那么下次请求的时候,浏览器会首先获取header信息,根据Cache-Control和expires判断本地缓存是否过期。

没过期就直接从缓存中取,过期了就再向服务器请求资源再缓存。
在这里插入图片描述
expires是相对时间,就是可以人为改。

Cache-Control是绝对时间,优先级更高。

协商缓存

服务器用来确定缓存资源是否过期。

看header中的Last-Modified和If-Modified-Since、Etag和If-None-Match

Last-Modified和If-Modified-Since

Last-Modified:浏览器第一次向服务器请求资源时,服务器会在资源的响应头中加上Last-Modified,表示该资源在服务器的最新修改时间

If-Modified-Since:浏览器再次请求资源时,请求头里加上If-Modified-Since,值是上一次请求资源时返回的Last-Modified时间。对比这个资源的当前最新修改时间和If-Modified-Since,来决定要不要更新,已经最新了就返回304

Etag和If-None-Match

Etag:⽐较⽂件指纹(根据⽂件内容计算出的唯⼀哈希值)
这个和Last-Modified/If-Modified-Since处理逻辑一致,但是弥补了不足。

1.Last-Modified精确到秒,如果某些资源在1秒钟以内,被修改多次的话,它将不能准确标注文件的修改时间

2.文件本身没修改,比如说改了文件名再改回来,时间也会被刷新

Etag/If-None-Match的优先级高于Last-Modify/If-Modify-Since

Etag也有缺点:开销大

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值