CDN 与网站加速
09 · CMS、SaaS 与 AI 制作应用的缓存策略
按公开性、身份、方法和生命周期给 CMS、SaaS、图片与 PDF 工具分区,避免把 AI 生成代码中的动态页面误缓存。
编辑与核验:橙宝书编辑团队 ·
CDN · PHASE 3进阶约 30 分钟CMS · SaaS · 图片/PDF 工具
这里的 AI 应用是什么意思
本篇所说的是用 ChatGPT、Codex、Cursor 等 AI 辅助做出来的普通应用,包括 SaaS、CMS、图片转换、PDF 处理和业务工具;不是专指 AI Agent、聊天机器人或模型 API。缓存边界由 HTTP 行为和数据隐私决定,与代码是不是 AI 生成无关。
先让请求通过四个问题
flowchart TD
A[一个 URL 或路由] --> B{所有用户看到相同内容?}
B -- 否 --> X[Bypass shared cache]
B -- 是 --> C{是否仅安全读取?}
C -- 否 --> X
C -- 是 --> D{是否携带身份或返回 Set-Cookie?}
D -- 是 --> X
D -- 否 --> E{内容变化时能换 URL 或精准刷新?}
E -- 否 --> F[短 Edge TTL + 重新验证]
E -- 是 --> G[Eligible + 按生命周期设置 TTL]“公开 URL”不等于“公开响应”。若同一个 URL 会根据 Cookie、Authorization、租户、地区、语言、实验组或权限返回不同内容,就必须先证明缓存键能完整表达所有变体;对新手而言,默认绕过通常更安全。
三类应用的推荐分区
| 区域 | 示例 | 初始策略 |
|---|---|---|
| 指纹资源 | 主题 JS/CSS、公开图片缩略图 | 长 Edge 与 Browser TTL |
| 已发布内容 | 文章、分类、公开 Feed | 短 Edge TTL,编辑发布后精准刷新 |
| 预览与后台 | /preview/*、/admin/* | Bypass,保留身份与草稿 Cookie |
| 搜索与个性化 | 站内搜索、推荐、会员内容 | 默认 Bypass,再按是否真正公开细分 |
一个可复用的应用结构
www.example.com 公开营销与文档,可审慎缓存 HTML
app.example.com 登录后的 SaaS/CMS 工作区,动态内容默认绕过
assets.example.com 指纹静态资源,长 TTL
files.example.com 上传与结果;按对象公开性单独授权,不继承营销站规则分 Hostname 不是安全机制本身,但能让规则、监控和证书边界更清楚。不要把 www 的 Cache Everything 规则无意间覆盖到 app 或 files。
AI 生成代码最常见的缓存误区
| 误区 | 为什么危险 | 修正方式 |
|---|---|---|
| “GET 都能缓存” | GET 可能按 Cookie 返回账户数据,甚至错误地产生副作用 | 同时审计身份、响应头与业务动作 |
| “查询参数会自动隔离用户” | 参数可能可猜、可遗漏或包含敏感值 | 私有响应绕过;不要拿 URL 当授权 |
| “TTL 设短就不会泄露” | 一秒的共享缓存也可能把响应给错误用户 | 私有内容根本不进入共享缓存 |
| “清 Cloudflare 就能撤回所有缓存” | 浏览器缓存无法被边缘 Purge 远程收回 | 可变 URL 使用短 Browser TTL 或版本化 |
| “看到 HIT 就是优化成功” | 登录、账单或私有文件 HIT 反而是事故信号 | 以正确性和跨用户隔离为首要验收 |
上线前用两种身份、三个动作测试
匿名客户端
访问营销页、公开内容和静态资源两次,记录 CF-Cache-Status、Age、缓存控制头和页面是否含个性化信息。
账号 A 与账号 B
分别登录、查看 Dashboard、更新资料、退出。两者的 HTML、JSON、下载 URL 与错误页都不得互相出现;检查首个页面是否保留 Set-Cookie 与 CSRF 状态。
创建、撤销与发布
在 CMS 发布再撤稿,在 SaaS 撤销公共分享,在图片/PDF 工具删除结果。记录从业务动作到边缘与浏览器不再提供旧内容的最坏时间,超过目标就进入下一阶段设计精准刷新。
继续学习 Cache Key 安全、发布刷新和多级缓存;在此之前,先确保本页所有私有路径都能稳定绕过。
官方来源
这篇内容帮你完成目标了吗?
内测反馈只在当前浏览器生成,不会自动上传。