当前位置: 首页 > article >正文

前端知识笔记(二十一)———浏览器的缓存策略

浏览器缓存的策略主要分为两种:过期机制和验证机制。

过期机制:是指浏览器根据资源的过期时间,判断是否可以直接使用缓存中的副本,而无需向服务器发起请求。过期时间可以通过以下两种方式设置:
Cache-Control:这是一个HTTP响应头,用于指定资源的最大有效期。例如,Cache-Control: max-age=3600表示资源在3600秒内有效,之后需要重新请求。
Expires:这也是一个HTTP响应头,用于指定资源的具体过期时间。例如,Expires: Wed, 21 Oct 2023 07:28:00 GMT表示资源在2023年10月21日7点28分过期,之后需要重新请求。如果同时设置了Cache-Control和Expires,那么Cache-Control的优先级更高。
验证机制:是指浏览器在请求资源时,向服务器发送一些标识,询问资源是否有更新,如果没有更新,那么服务器返回304状态码,表示资源未修改,浏览器可以继续使用缓存中的副本;如果有更新,那么服务器返回200状态码,以及最新的资源,浏览器更新缓存并渲染资源。验证机制可以通过以下两种方式实现:
Last-Modified:这是一个HTTP响应头,用于表示资源的最后修改时间。例如,Last-Modified: Wed, 21 Oct 2023 07:28:00 GMT表示资源在2023年10月21日7点28分被修改过。当浏览器再次请求该资源时,会发送一个If-Modified-Since的HTTP请求头,其值为上次的Last-Modified的值,服务器根据这个值判断资源是否有更新。
ETag:这是一个HTTP响应头,用于表示资源的唯一标识。例如,ETag: "5d8c72a5edda8d6a:0"表示资源的ETag值为"5d8c72a5edda8d6a:0"。当浏览器再次请求该资源时,会发送一个If-None-Match的HTTP请求头,其值为上次的ETag的值,服务器根据这个值判断资源是否有更新。
Last-Modified和ETag的比较:

ETag比Last-Modified更准确,因为如果打开没有修改的文件,Last-Modified也会改变,而且Last-Modified的单位时间是秒,如果文件在一秒钟内被修改,它仍然会命中缓存³。
ETag比Last-Modified更消耗性能,因为服务器需要为每个资源生成和比较ETag的值,而Last-Modified只需要获取文件的修改时间即可。
如果同时设置了Last-Modified和ETag,那么服务器会优先根据ETag的值判断资源是否有更新
 


http://www.kler.cn/a/158100.html

相关文章:

  • 加强网站稳定性!学习如何进行高效压力测试!
  • 【矩阵论】Chapter 6—矩阵分解知识点总结复习(附Python实现)
  • 微机原理——定时器8253(8254)学习2应用与设计
  • RAG落地实践、AI游戏开发、上海·深圳·广州线下工坊启动!星河社区重磅周
  • 企业微信HOOK开发接口调用,发送语音消息
  • 如何在Linux环境搭建本地SVN服务器并结合cpolar实现公网访问
  • 协议栈的内部结构
  • jQuery选择器、操作DOM、事件处理机制、动画、ADJX操作知识点梳理
  • 数实融合!低代码推动工业数字化转型走“深”向“实”
  • Python爬虫技术:如何利用ip地址爬取动态网页
  • 梯度上升和随机梯度上升
  • 如何删除mac苹果电脑上面的流氓软件?
  • 【工作生活】汽车电子嵌入式开发简介
  • Stable diffusion ai图像生成本地部署教程
  • 蓝桥杯 动态规划
  • 实用攻略——SD-WAN网络配置步骤详解
  • state_dict使用详解
  • W2311294-万宾科技可燃气体监测仪怎么进行数据监测
  • Android : 篮球记分器app _简单应用
  • 9-MapReduce开发技术