浏览器缓存(Browser Cache)是指浏览器会将访问过的资源(如 HTML、CSS、JS、图片等)存储在本地,以便在后续请求时可以直接从缓存中获取,而不是重新向服务器请求。在 Web 开发中,浏览器缓存是一项至关重要的优化技术,它能够减少网络请求,提升页面加载速度,提高用户体验,同时降低服务器负载。
缓存机制主要通过 HTTP 头部控制,包括强缓存(Strong Cache)和协商缓存(Negotiated Cache)。强缓存会直接读取本地缓存,协商缓存则是与服务器协商读取。缓存未过期使用强缓存机制,过期了则使用协商缓存机制。
%%{ init: { 'theme': 'base', 'themeVariables': { 'primaryBorderColor': '#7C0000', 'lineColor': '#fff', 'tertiaryColor': '#fff', 'fontSize': '12px', 'max-width': '10000px' } } }%% graph TD; A[浏览器请求资源] --> B{是否存在缓存} B -- 否
no-store --> C[向服务器请求资源] C --> D{决策返回
200 or 304?} D -- 200 --> E[设置缓存信息
Last-Modified, ETag] E --> F[使用资源] D -- 304 --> G[更新缓存信息
Last-Modified, ETag] G --> F B -- 是 --> H{是否可直接使用} H -- 否
no-cache --> I[获取验证信息
If-Modified-Since / If-None-Match] I --> C H -- 是 --> K{是否过期
expires/max-age/s-maxage} K -- 是 --> I K -- 否 --> L[从缓存中获取资源] L --> F
(缓存控制流程图)