HTTP WEB 的缓存行为
强缓存
定义:客户端直接从本地缓存中加载资源,而无需向服务器发起请求。
实现方式:HTTP 头部 Cache-Control(如 max-age
、immutable
)
- max-age=31536000:缓存 1 年
- immutable:资源不会改变,浏览器无需验证更新
浏览器检查缓存资源的有效期;如果资源在有效期内,直接使用缓存(状态码 200 (from disk cache) 或 200 (from memory cache));如果资源过期,则进入协商缓存。
协商缓存
定义:客户端通过验证机制与服务器确认资源是否更新。
实现方式:
- ETag 和 If-None-Match:通过资源指纹校验是否更新。
- Last-Modified 和 If-Modified-Since:通过资源的最后修改时间判断是否更新。
客户端发送请求,附带验证头(如 If-None-Match 或 If-Modified-Since)。服务器检查资源是否更新,如果未更新,返回状态码 304 Not Modified,客户端继续使用缓存;如果已更新,返回状态码 200 OK 和新的资源内容。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-12-25 MySQL的多版本并发控制(MVCC).