Java 中的 HTTP 缓存策略实战指南
一 核心概念与工作流程
二 在 Java 中的落地实现
三 常见场景与推荐配置
| 场景 | 推荐响应头 | 说明 |
|---|---|---|
| 静态资源(带内容哈希/版本) | Cache-Control: public, max-age=31536000(1年), immutable | 长期强缓存;内容变化通过文件名变更失效,避免 304 往返 |
| 静态资源(不带哈希) | Cache-Control: public, max-age=3600;Last-Modified;ETag | 以协商缓存兜底,未变更返回 304 |
| 私有/用户态数据 | Cache-Control: private, max-age=600 | 仅浏览器可缓存,避免共享缓存泄露 |
| 敏感/隐私数据 | Cache-Control: no-store | 禁止任何缓存,优先安全 |
| 需每次验证的接口 | Cache-Control: no-cache;ETag 或 Last-Modified | 每次用前验证,未变 304,变则 200 |
| 禁用缓存(开发/调试) | Cache-Control: no-cache, no-store, must-revalidate;Pragma: no-cache;Expires: 0 | 全链路不缓存,确保拿最新内容 |
| 说明:s-maxage专用于共享缓存(如CDN/代理),可覆盖 max-age;对私有响应通常设为 private 或省略 s-maxage。 |
四 验证与排错要点
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。