通过浏览器控制缓存
发布: (2025年12月13日 GMT+8 05:22)
3 min read
原文: Dev.to
Source: Dev.to
Cache 是一种用于加速对经常使用的内容访问的机制。
在系统中实现缓存时,理想的做法是将其放置得尽可能靠近客户端,使用浏览器缓存来提升访问速度并减轻服务器负载。
Cache‑Control
Cache‑Control 头部允许控制浏览器如何存储和复用响应。以下是可使用的主要取值:
default
- 如果缓存中有有效的版本,则返回该版本。
- 如果缓存的版本已过期,浏览器会向服务器发送条件请求(例如
If-Modified-Since/ETag)。- 如果有更改,则返回新版本并更新缓存。
- 否则,复用缓存中的版本。
- 如果缓存中未找到任何内容,则正常向服务器发起请求,并用响应填充缓存。
no-store
- 浏览器忽略缓存:请求发送到服务器,响应不被存储。
reload
- 浏览器忽略缓存,向服务器请求,并用收到的响应更新缓存。
no-cache
- 浏览器检查缓存;如果有版本,则向服务器进行验证。
- 如果服务器指示有新版本,则返回该版本并更新缓存。
- 否则,使用缓存中的版本。
force-cache
- 浏览器首先尝试使用缓存:
- 如果找到版本(即使已过期),也返回它。
- 如果未找到,则向服务器请求,返回数据并将其存入缓存。
max-age=
以秒为单位定义响应被视为新鲜的时长。可与上述取值组合使用。例如:
Cache-Control: max-age=3600
Expires
除了 Cache-Control,还可以使用 Expires 响应头来指定响应在何时之后变为过期:
Expires: Thu, 25 Dec 2025 18:18:18 GMT
自指定时间起,资源将被视为已过期,浏览器应获取新版本。
Referências
- (未提供其他参考资料)