【前端面试题-12】简单说一下浏览器的缓存策略有哪些

浏览器的缓存策略主要包括两种主要机制:强缓存和协商缓存。

1. 强缓存(也称为绝对缓存)

  • Expires: 这是HTTP/1.0中的字段,服务器设定一个具体的到期时间,只要在这个时间之前,浏览器都会直接从缓存中读取资源,而不发出任何请求到服务器。

  • Cache-Control: HTTP/1.1引入的新机制,比Expires更为灵活,支持max-age指令,表明资源在多长时间内有效,以及no-cache、no-store等指令来控制缓存行为。

当浏览器发起请求时,首先会检查是否存在有效的强缓存,如果有,则直接从本地缓存中获取资源,不会产生网络请求,状态码为200(from cache)。

2. 协商缓存(也称为条件请求)

  • Last-Modified/If-Modified-Since: 服务器在响应头中添加Last-Modified字段表示资源最后修改时间,浏览器在下次请求时带上If-Modified-Since字段,若服务器资源未改变,则返回304 Not Modified,告知浏览器使用本地缓存。

  • ETag/If-None-Match: ETag是服务器为每个资源生成的唯一标识符,浏览器在后续请求时带上If-None-Match,与服务器对比资源的当前ETag,若未改变,服务器也会返回304 Not Modified。

协商缓存发生在强缓存失效后,浏览器依然会向服务器发送请求,但请求头中包含了可以用来判断资源是否更新的信息,服务器根据这些信息决定是否重新发送资源内容。

总结

浏览器缓存策略的目的是减少不必要的网络请求,提高页面加载速度和用户体验。整个缓存过程按照以下顺序进行:

  1. 检查本地缓存是否有符合要求的强缓存,若有则直接使用。
  2. 若强缓存失效,则发起请求至服务器,询问资源是否发生变更(协商缓存)。
  3. 如果协商缓存命中,服务器指示浏览器继续使用本地缓存;否则,服务器发送最新资源给浏览器并更新缓存。

此外,还有Service Worker、内存缓存(memory cache)和HTTP缓存头(如Pragma、Vary等)等其他缓存手段,共同构成了浏览器全面且高效的缓存策略体系。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值