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

做淘宝优惠网站郑州论坛官网

做淘宝优惠网站,郑州论坛官网,天行健公司网站建设,桂林网上服务强缓存和协商缓存是浏览器缓存机制的两种核心方式,用于提升网页加载速度、减少服务器压力。 一、什么是强缓存(Strong Cache) 定义: 强缓存指的是:浏览器在 不向服务器发送请求 的前提下,直接从缓存中读取资…

强缓存和协商缓存是浏览器缓存机制的两种核心方式,用于提升网页加载速度、减少服务器压力。

一、什么是强缓存(Strong Cache)

定义:

强缓存指的是:浏览器在 不向服务器发送请求 的前提下,直接从缓存中读取资源。

关键响应头:

响应头字段说明
Cache-Control现代浏览器首选,控制资源缓存的方式和时长(优先级更高)
ExpiresHTTP/1.0 使用,指定资源过期的具体时间(绝对时间)

示例:

Cache-Control: max-age=3600

表示该资源在被请求后的 1小时内有效,这段时间内,浏览器 不会再向服务器发请求,直接从缓存中取资源。

应用场景:

  • 图片、CSS、JS 等静态资源(版本更新频率不高)
  • 加载速度要求高的页面资源

二、什么是协商缓存(Negotiated Cache / Conditional Cache)

定义:

当资源过期时(强缓存失效),浏览器会向服务器发出请求,但带上缓存标识。服务器判断资源是否更新:

  • 未更新 → 返回 304 Not Modified,使用本地缓存;
  • 已更新 → 返回新的资源(200 OK 和新内容)。

关键字段:

请求头:

请求头字段说明
If-Modified-Since上次服务器响应中的 Last-Modified 时间
If-None-Match上次响应的 ETag 值(资源内容的唯一标识)

响应头:

响应头字段说明
Last-Modified文件的最后修改时间
ETag文件的唯一标识(由服务器生成,优先级更高)

示例流程:

  1. 首次请求资源,响应头带:
ETag: "abc123"
  1. 下一次请求资源,请求头带:
If-None-Match: "abc123"
  1. 如果资源未变,服务器返回:
HTTP/1.1 304 Not Modified

浏览器用本地缓存。

应用场景:

  • 资源可能会更新但频率较低
  • 数据接口请求(如分页数据)
  • JS、CSS 等有版本控制的资源

三、强缓存与协商缓存的优先级

浏览器会按以下顺序判断是否使用缓存:

  1. 是否命中强缓存(如 Cache-Control)

    • 是 → 直接用缓存,不发请求

    • 否 → 进入协商缓存判断

  2. 是否命中协商缓存(如 If-None-Match)

    • 是 → 返回 304,不下载资源,只发轻量请求

    • 否 → 返回 200,下载新资源

四、应用策略推荐

类型缓存策略建议
静态资源强缓存(设置长时间 max-age + 加 hash)
动态请求数据协商缓存(启用 ETag / Last-Modified
HTML 文件不建议强缓存,协商缓存 + 控制更新频率
CDN 加速资源一般由 CDN 自动加 Cache-Control 策略

前端打包时推荐:

使用 Webpack/Vite 的 hash 文件名策略:

app.73ddfa.js

修改代码自动改变文件名,从而避免旧缓存(缓存穿透问题)。

五、如何查看缓存策略(以 Chrome 为例)

  1. 打开 DevTools → Network

  2. 刷新页面(建议勾选 “Disable cache” 测试后再取消)

  3. 查看资源请求状态:

    • from memory cache:内存缓存
    • from disk cache:磁盘缓存
    • 200:正常请求
    • 304:协商缓存命中

六、总结对比表

特点强缓存协商缓存
是否发送请求❌不发送✅发送
状态码无(直接读取缓存)304 Not Modified
浏览器是否使用本地缓存
触发条件Expires/Cache-ControlETag/Last-Modified
性能更好较好

七、内存缓存 vs 磁盘缓存 的区别

类型说明
内存缓存缓存在浏览器的内存中,生命周期短,标签页关闭即释放
磁盘缓存缓存在硬盘中,生命周期长,页面刷新、浏览器重启后仍可使用

八、是否使用磁盘/内存缓存的判断依据

浏览器会根据以下因素决定资源是否放入 内存缓存 还是 磁盘缓存:

存入内存缓存的典型条件:

  • 小文件(如小图标、小脚本)

  • 生命周期短、频繁访问的资源

  • 页面首次加载过程中的资源

  • 当前标签页使用的资源

存入磁盘缓存的典型条件:

  • 体积较大的资源(如视频、图片、JS/CSS)

  • 设置了较长过期时间的资源(Cache-Control: max-age=xxx)

  • 资源用于多个页面/标签页复用

  • 非私密资源(非 Cache-Control: no-store)

九、与强缓存/协商缓存的关系

  1. 强缓存会触发磁盘或内存缓存:

    • 浏览器决定使用强缓存后,会尝试从内存或磁盘读取缓存文件

    • 哪个缓存命中取决于:缓存位置 + 缓存是否仍在有效期

  2. 协商缓存则总是会发请求,所以它不影响“是否存在哪种缓存”,但可能依赖磁盘缓存提供的文件副本以减少加载成本

示例:

Cache-Control: no-store

浏览器完全不会缓存(内存或磁盘都不会)

Cache-Control: public, max-age=86400

强缓存 1 天,浏览器倾向于将其 存入磁盘

总结

问题答案
强缓存/协商缓存是否决定内存/磁盘缓存?❌ 不直接决定,但会影响浏览器是否使用缓存
什么决定资源存到哪里?✅ 由浏览器内部策略决定(文件大小、访问频率、生命周期等)
是否可以控制资源不被缓存?✅ 使用 Cache-Control: no-storePragma: no-cache
http://www.dtcms.com/a/402061.html

相关文章:

  • 罗庄区住房和城乡建设局网站南宁手机网站建设
  • 公司网站注册要多少钱唐山路南网站建设
  • 网站建设先进部门评选标准婚庆网站大全
  • wordpress建淘宝客网站教程长沙一键建站系统
  • 网站弹出窗口代码客户关系管理的重要性
  • 建设网站需申请什么资料WordPress中文章固定链接
  • 网站技术支持什么意思用什么软件做网站模板
  • 浙江国有建设用地出让网站新浪微博登录网页版
  • 中国建设银行网站缴费系统营销型网站是啥
  • 南昌网站建设有哪几家四川省建设厅消防网站
  • 建设工程施工合同最新版本网站建设优化服务策划
  • 徐州城乡建设招投标网站小制作小发明论文
  • 百度站长工具大全网站不收录的解决办法
  • 关于网站建设的论文题目网站开发 软文
  • 网站建设管理策划书怎么用flash做网站
  • 企业网站建设方案优化网站推广方案设计方案
  • 建设厅网站2015154合肥生态丽景网站建设
  • 下列关于网站开发中网页发布网站内部链接导向
  • 池州最好的网站建设西安seo培训机构
  • 各大招聘网站收费标准织梦模板自适应
  • 诸城做网站的wordpress网頁
  • 用dw做音乐网站系统的代码wordpress后台地址更改
  • 建网站seo品牌建设的定义
  • 互联网营销师报名入口亚马逊seo推广
  • 机械网站精选学做网站论坛第六节
  • 河北省住房城乡建设局网站大型商家进驻网站开发
  • 邯郸做wap网站价格郴州网站建设培训
  • 正规的网站建设明细报价表如何设计产品网站建设
  • 学技巧网站制作百度总部公司地址在哪里
  • 瑞安外贸网站建设网络平台指网站 建设项目所在地