GPT每日面试题—强缓存和协商缓存

26 篇文章 0 订阅
6 篇文章 0 订阅

充分利用ChatGPT的优势,帮助我们快速准备前端面试。今日问题:强缓存和协商缓存?

Q:如果在前端面试中,被问到强缓存和协商缓存,怎么回答比较好,全面详细一点,越详细越好?

A:在前端面试中,被问到强缓存和协商缓存时,可以这样回答:

公众号:Code程序人生,个人网站:https://creatorblog.cn

  1. 强缓存:
  • 强缓存是指浏览器在请求资源时,直接从本地缓存中获取资源,并不发起请求到服务器。
  • 判断是否使用强缓存是通过比较请求时的时间与资源的过期时间(或者缓存有效时间)来决定的。
  • 常见的强缓存控制字段有 Expires 和 Cache-Control。
  • Expires:是服务器响应消息头字段,表示资源的到期时间,是一个绝对时间,即具体的过期日期。
  • Cache-Control:是 HTTP/1.1 提供的更灵活的缓存控制方式,包含多个指令,如 max-age 表示资源的最大缓存时间,单位是秒。
  1. 协商缓存:
  • 协商缓存是指浏览器在请求资源时,会向服务器发送请求,服务器根据资源的最后修改时间或者唯一标识符(ETag)等信息来判断是否命中缓存。
  • 如果资源未发生变化,则返回 304 Not Modified 状态码,浏览器从本地缓存中加载资源;否则返回新的资源和 200 OK 状态码。
  • Last-Modified / If-Modified-Since:服务器响应消息头字段 Last-Modified 表示资源的最后修改时间,浏览器再次请求资源时会发送 If-Modified-Since 字段,表示资源的上次请求时间。
  • ETag / If-None-Match:服务器响应消息头字段 ETag 是资源的唯一标识符,浏览器再次请求资源时会发送 If-None-Match 字段,包含上次请求的 ETag 值。
  1. 优缺点对比:
  • 强缓存:

    • 优点:减少了网络请求,加快页面加载速度,节省带宽资源。
    • 缺点:资源过期后仍然可能存在过时数据,需要等待下一次缓存更新。
  • 协商缓存:

    • 优点:能够准确判断资源是否发生变化,节省了不必要的数据传输。
    • 缺点:需要向服务器发送请求,增加了网络延迟。
  1. 使用场景:
  • 强缓存适用于静态资源,如图片、样式表、脚本等,这些资源在一定时间内不会发生变化。
  • 协商缓存适用于动态内容或者频繁更新的资源,如接口数据、动态页面等,可以根据资源的变化情况决定是否返回新的数据。
  1. 缓存验证策略:
  • 强缓存失效后,浏览器会发送请求到服务器,服务器根据资源的修改时间或者唯一标识符来验证资源是否发生变化。
  • 如果资源未发生变化,则返回 304 Not Modified 状态码,浏览器从本地缓存加载资源;否则返回新的资源和 200 OK 状态码。

综上所述,强缓存和协商缓存各有其优缺点和适用场景,合理使用可以提高页面加载速度和用户体验。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CreatorRay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值