Lee
Photo by Growtika
Lee
Lee
Published at Aug 22, 2025 · 1 min to read

浏览器缓存机制

Contents

缓存流程概述

浏览器缓存主要分为 强缓存协商缓存,目的是减少网络请求、降低服务器压力、提升页面加载速度。

浏览器首次请求资源时:

后续请求时:

强缓存

通过响应头控制资源过期时间(不向服务器发请求)

命中强缓存 Network 面板显示 200 (from disk cache)200 (from memory cache)

Cache-Control

使用更灵活的相对时间,多个指令可组合(如Cache-Control: max-age=3600, public)。

常见指令

协商缓存

强缓存过期后会触发协商缓存,服务器根据资源标识判断是否变更(向服务器发请求验证)

字段对所属协议说明优先级/注意点
Last-Modified / If-Modified-SinceHTTP/1.0基于最后修改时间(秒级精度)。精度低(秒内多次修改无效);分布式服务器时间可能不一致。
ETag / If-None-MatchHTTP/1.1基于资源内容hash(唯一标识)。可强/弱校验(W/开头为弱)。优先于Last-Modified。更精确(内容不变,ETag不变)。推荐使用。

流程:

ETag优势:内容相同但修改时间变了,仍可命中缓存。

不同刷新方式的影响

操作强缓存协商缓存说明
地址栏回车/链接跳转检查检查正常触发缓存机制。
F5 / 刷新按钮忽略检查Cache-Control: max-age=0,等价no-cache。
Ctrl+F5 / 强制刷新忽略忽略添加no-cache/no-store,直接请求新资源。

前端性能优化

闽ICP备14017690号-8