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

浏览器强缓存和弱缓存的主要区别

浏览器强缓存与弱缓存

浏览器的缓存机制主要分为两种:强缓存与协商缓存(也称弱缓存)。

强缓存

强缓存是指浏览器在请求一个资源时,不与服务器发生通信,直接从本地缓存中获取资源。如果存在有效的强缓存,浏览器将完全跳过网络请求阶段,显著提升性能和加载速度。

实现方式

强缓存基于HTTP响应头中的特定字段来实现,主要包括:

  1. Cache-Control

    • 这是一种相对新鲜度策略,通过设置max-age指令来表明资源的有效期(单位为秒)。在此期间,浏览器无需向服务器验证资源是否已更新。
  2. Expires

    • 这是一种绝对时间戳策略,用于指定资源的过期时间。若当前时间未超过该时间点,浏览器将使用缓存。

弱缓存/协商缓存

当强缓存失效或不存在时,浏览器会发起网络请求,并携带缓存相关标识到服务器进行验证,询问服务器缓存的资源是否仍有效。这一过程称为协商缓存或弱缓存。

协商机制

协商缓存主要依赖以下HTTP头部信息:

  1. Last-Modified / If-Modified-Since

    • 服务器在返回资源时附带Last-Modified字段,表示资源最后修改的时间。下一次请求时,浏览器发送If-Modified-Since请求头,服务器根据这个时间判断资源是否有更新。若无更新,则返回304状态码及新的响应头(不含资源内容),浏览器继续使用本地缓存的资源。
  2. ETag / If-None-Match

    • 服务器返回资源时可能生成一个唯一标识符ETag。客户端再次请求时携带If-None-Match请求头,服务器依据ETag判断资源是否被修改。若无修改,同样返回304状态码及新的响应头,浏览器继续使用本地缓存。

总结而言,强缓存无需与服务器通信即可决定是否使用缓存,而弱缓存则需要通过与服务器的交互来确认缓存是否仍然有效。。

http://www.lryc.cn/news/324369.html

相关文章:

  • 深度学习-2.9梯度不稳定和Glorot条件
  • 地宫取宝dfs
  • Ollama 运行 Cohere 的 command-r 模型
  • 2024年C语言最新经典面试题汇总(11-20)
  • arm linux应用程序crash分析一般方法
  • Web安全防护技术解决方案
  • 流畅的 Python 第二版(GPT 重译)(十一)
  • Blender 3D建模要点
  • 网络安全实训Day8
  • GB28181 —— 5、C++编写GB28181设备端,完成将USB摄像头视频实时转发至GB28181服务并可播放(附源码)
  • Git工具的详细使用
  • 【prometheus-operator】k8s监控redis
  • 外包干了4年,技术退步明显.......
  • xbackup 备份MySQL数据库脚本
  • npm常用命令详解
  • IPV6协议之RIPNG
  • JVM垃圾收集器你会选择吗?
  • 游戏防沉迷系统相关内容
  • 每日OJ题_牛客_JD1 年终奖(动态规划)
  • 深度学习 tablent表格识别实践记录
  • 深度学习 线性神经网络(线性回归 从零开始实现)
  • HBase在表操作--显示中文
  • 基于BusyBox的imx6ull移植sqlite3到ARM板子上
  • 连续子数组的最大和
  • Photoshop 工具使用详解(全集 · 2024版)
  • C++函数返回机制,返回类型
  • [linux] Key is stored in legacy trusted.gpg keyring
  • 阿里云部署OneApi
  • MapReduce学习问题记录
  • Elasticsearch优化