缓存简介
什么是缓存
在Web开发中,缓存是一种存储机制,用于临时保存响应数据,以便后续相同的请求可以更快地被处理,减少对原始服务器的请求压力。这里也只关注web中的缓存内容。
![图片[1]-缓存欺骗与缓存投毒,Web 缓存漏洞利用漏洞 - HackTwoHub社区-HackTwoHub社区](https://oss.hacktwohub.com/wp-content/uploads/2026/04/20260408222434997..png?x-oss-process=style/Image-webpszip)
那到底缓存的是些什么内容?
缓存的是HTTP请求的响应内容,包括:包括响应头(如Cache-Control, ETag, Last-Modified等)和响应体(HTML、CSS、JS、图片等实际内容)等。
响应体又包含:
1. 静态资源:如图片(PNG、JPEG)、样式表(CSS)、JavaScript文件、字体文件等。这些资源不经常改变,适合缓存。
2. 动态资源:有时也可以缓存动态生成的页面或API响应,但需要谨慎,因为内容可能随用户或时间而变化。
哪些内容需要缓存?
不经常变化的静态资源:这些资源可以通过在文件名中添加哈希值(如style.a1b2c3.css)来实现长期缓存,因为每次内容变化都会生成新的文件名。
公开的、非用户特定的内容:例如博客文章、新闻文章等。对于用户特定的内容(如个人资料页面),则不应被缓存,或者只能缓存在私有缓存中(如浏览器缓存,且标记为private)。
通常遵循如下规则:
| 内容类型 | 缓存策略 | 理由 |
| 静态资源 (CSS、JS、图片、字体) | 长期缓存 Cache-Control: public, max-age=31536000 | 内容不常变化,文件名通常带哈希值 |
| 用户私密数据 (个人资料、购物车) | 不缓存或私有缓存 Cache-Control: private, no-store | 每个用户的内容不同,且包含用户敏感信息 |
| 公开动态内容 (博客文章、新闻) | 短期缓存 Cache-Control: public, max-age=300 | 内容可能变化,但允许短时间缓存 |
| API响应 | 根据内容决定 可设置 Cache-Control: max-age=60 | 数据可能频繁更新 |
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END















暂无评论内容