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

# HTTP缓存机制轻松学(新手版+实战小技巧)

我们第二次访问同一个网站时,页面加载速度会变快,这背后就是HTTP缓存在起作用。缓存能让浏览器少发请求、多复用本地资源,是提升网页加载速度的关键。这篇笔记用大白话讲清缓存的两种类型,新手也能看懂。

一、 缓存的核心作用

一句话总结:让浏览器重复利用之前下载的资源(如图片、CSS、JS),不用每次都向服务器要,既省流量又提速度。

二、 两种缓存类型:强缓存 vs 协商缓存

HTTP缓存分两步走,先查强缓存,再查协商缓存,一步都不能少。

1. 强缓存:直接用本地资源,不麻烦服务器

强缓存是浏览器的“自主判断”,不用给服务器发请求,直接用本地存好的资源。

  • 判断依据:看响应头里的 Cache-ControlExpires 字段
    • Cache-Control: max-age=86400:资源有效期是86400秒(1天),1天内直接用缓存
    • Expires: Wed, 24 Jan 2025 08:00:00 GMT:到这个时间点前,都能用缓存
  • 实战现象:在浏览器开发者工具的Network面板里,资源的状态码显示 200 from disk cache200 from memory cache

2. 协商缓存:问一问服务器,资源能不能用

强缓存过期后,浏览器会去“问”服务器:“我本地的资源还能用吗?”,这就是协商缓存。

  • 判断依据:浏览器带两个“凭证”给服务器
    1. Last-Modified:资源最后修改的时间
    2. ETag:资源的唯一标识(像资源的身份证号)
  • 服务器的两种回复
    • 能用:返回状态码 304 Not Modified,浏览器继续用本地缓存
    • 不能用:返回状态码 200 OK 和新资源,浏览器更新本地缓存

三、 新手实战小技巧:看缓存是否生效

  1. 打开浏览器(如Chrome),按F12打开开发者工具
  2. 切换到Network面板,勾选Disable cache旁边的框(取消禁用缓存)
  3. 访问目标网站,刷新页面,看资源的Status列:
    • 显示200 from cache → 强缓存生效
    • 显示304 → 协商缓存生效
    • 显示200 → 缓存失效,重新下载资源

四、 缓存的小误区(新手必看)

  1. 不是所有资源都能缓存:像登录后的用户信息、实时更新的股票数据,一般会设置 Cache-Control: no-cache,跳过强缓存直接走协商缓存。
  2. 强缓存优先级更高Cache-ControlExpires 同时存在时,以 Cache-Control 为准。

五、 入门练习题(附答案)

选择题

  1. 强缓存生效时,资源的状态码显示为?()
    A. 304 B. 200 from cache C. 404
  2. 协商缓存的核心判断凭证不包括?()
    A. ETag B. Last-Modified C. Cache-Control
  3. 下列哪个响应头是强缓存的核心字段?()
    A. max-age B. 304 C. 200

简答题

  1. 强缓存和协商缓存的核心区别是什么?
  2. 看到状态码304,说明缓存处于什么阶段?

答案

选择题:1.B 2.C 3.A
简答题

  1. 强缓存不向服务器发请求,直接用本地资源;协商缓存需要向服务器发送请求,确认资源是否可用。
  2. 说明强缓存已经过期,当前处于协商缓存阶段,且服务器允许继续使用本地缓存。
http://www.jsqmd.com/news/139588/

相关文章:

  • Windows系统文件tsgqec.dll丢失损坏问题 下载修复方法
  • KylinOS安装、功能快捷键使用、命令介绍和使用的细节
  • 家居密封胶带选购指南:品牌、性价比与靠谱厂家是关键
  • 微信小程序uniapp-vue面试刷题网站考试系统功能全
  • Java毕设选题推荐:基于springboot的在线考试系统在线考试及试题管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Windows系统文件twinapi.dll丢失损坏 免费下载方法
  • 2025年我的台历定制之旅:温州云边包装让企业宣传更有温度
  • JMeter测试接口
  • 代码签名证书:选型与申请全攻略
  • BioSIM抗人MASP2抗体SIM0470:聚焦凝集素补体通路
  • AI时光机开发:深度解析NLS技术在现代健康管理中的应用与前景报告【健康筛查管理系统颠覆】
  • 【Android 数据】实现 Kotlin Serialization 数据序列化
  • 防水胶带供应商推荐:南通众皓胶粘制品有限公司引领行业新风尚
  • 基于Python+Django的框架的黄瓜批发市场管理系统(源码+讲解视频+LW)
  • 微信小程序uniapp-vue旅游景点门票预订服务平台
  • 微信小程序uniapp-vue我爱美食--健康菜谱分享网站
  • DeepSeek-V3.2 128K 推理秒开?百度百舸开源 CP 上下文并行方案
  • fiddler相关内容
  • transformer模型读书报告
  • Vue.js 走马灯实现方法
  • 微信小程序uniapp-vue校友录同学录班级网站
  • HTTP请求头与响应头轻松懂(基础版+练习题)
  • 探寻密封胶带优质厂家:南通众皓实力凸显
  • 基于Python+Django的框架的胶济铁路博物馆管理系统(源码+讲解视频+LW)
  • 尿液蛋白质组学:开启无创疾病诊断的“新钥匙”
  • 微信小程序uniapp-vue社区二手物品租赁系统springboot
  • fiddler中的 核心概念
  • 基于微信小程序的智慧校园管理系统(源码+讲解视频+LW)
  • 微信小程序uniapp-vue校园二手商城交易积分兑换38gw6
  • 微信小程序uniapp-vue社区养老护工服务预约评价系统