前端面试之HTTP缓存的那些事(四)

3 篇文章 0 订阅

最近在准备面试,感觉好些东西了解,但是了解的深度有限。自己就总结了几个模块,打算强化一下。如果你感觉我的文章对你有帮助,请点赞。如果感觉有哪些不足之处,可以留言。让我们一同进步,学习!!!
最后在说明一下,这个系列我会一直写下去。如果,你有什么好的方向,也可以提出来。

HTTP缓存大概会被问到这些方面

说一下HTTP的强缓存,协商缓存吧
什么叫强缓存,协商缓存
前端cookie,localStorage,sessionStorage
状态码304

缓存的处理步骤

1、当我们需求向服务器请求资源的时候,会首先判断是否有缓存,如果没有,正常的向服务器发出请求。
2、如果有缓存,就进入强缓存的范围(强缓存级别高于协商缓冲,并且可以同时存在)。首先判断缓冲是否还在有效期中,在的话,就将内容返回客户端。不在,则进入协商缓冲。
3、协商缓存将判断是否存在Etag和Last-Modified首部,通过这些首部验证资源是否发生过变化,如果未发生变化,则表示命中了协商缓存,返回内容。反之不。

强缓存,协商缓存

强缓存

强缓存利用头部 Expires和Cache-Control:max-age来实现
两者均是为了标识资源过期时间的
Expires是HTTP1.0的产物,但是客户端和服务端的时间机制不一样,绝对时间
Cache-Control 这是HTTP 1.1的产物,他的max-age是一个相对时间,设置最大使用期

强缓存过程

当我们首次请求资源的时候,服务器将内容返回给我们的时候,会在返回的(Response)中为Expires或Cache-Control中写入过期时间,
当我们再一次的请求这个资源的时候,缓存就会进行之前写的123步骤,当进入第二步骤的时候,缓存会对data(也是一个通用首部,查看response即可发现)与我们的Expires或Cache-Control进行比较,从而判断该副本资源是否可以使用

协商缓冲
协商缓冲过程

首次请求资源时,服务器在返回资源的同时,会在Response Headers中写入Last-Modified首部,表示该资源在服务器上的最后修改时间。
当再次请求该资源时,会在Request Headers 中写入If-Modified-Since首部,此时的If-Modified-Since的值是首次请求资源时所返回的Last-Modified的值。
服务器接收到请求后,会根据If-Modified-Since的值判断资源在该日期之后是否发生过变化。
如果没有,则会返回304 Not Modified;如果变化了,则会返回变化过后的资源,同时更新Last-Modified的值。

在这里插入图片描述

cookie,localStorage,sessionStorage

大家有兴趣可以查看我的这篇博客
链接:前端必知必会的存储cookie,sessionStorage,localStorage的区别及应用场景

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值