首页/云/云网络与负载均衡速查/动态内容与不缓存配置
云 DNS 与 CDN49 条

动态内容与不缓存配置

接口与个性化页面不应被共享缓存:在 CDN 侧配置不缓存规则,或由源站下发 Cache-Control: no-store/private 并确认 CDN 遵循策略。含隐私数据的响应同时要禁止共享缓存。

哪些内容不能缓存

接口响应与个性化页面不应被共享缓存:同一个 URL 对不同用户返回不同内容,一旦被边缘节点缓存,就会出现数据串号。做法有两类——在 CDN 侧把接口路径配置为不缓存,或由源站下发 Cache-Control: no-store 或 private 并要求 CDN 遵循源站策略。涉及隐私数据的响应必须同时禁止共享缓存。

基本信息

方式一CDN 规则中把接口路径设置为不缓存
方式二源站响应头下发 Cache-Control: no-store 或 private
注意部分产品可配置是否遵循源站缓存头,需核对实际行为
验证方式连续两次请求,观察是否都回源且不被缓存
隐私要求含用户信息的响应必须禁止共享缓存

典型使用场景

  • 登录态接口返回用户数据,必须确保不被共享缓存
  • 带查询参数的列表接口,不同参数内容不同,需要按规则区分
  • 后台管理页面被缓存导致展示过期数据,需要配不缓存
  • 排查数据串号:确认是否存在接口被缓存的情况
  • 支付与订单类接口,禁止任何形式的中间缓存

验证不缓存行为

验证不缓存行为
# 源站下发的缓存头
curl -sI https://origin.example.com/api/user | grep -i -E 'cache-control|expires'
# 经 CDN 的响应,确认未被边缘缓存
curl -sI https://cdn.example.com/api/user | grep -i -E 'cache-control|age|x-cache'
# 连续两次请求,age 不应持续增长,命中状态应为回源

缓存头语义

指令含义适用场景
no-store完全不存储支付、订单等敏感接口
private仅浏览器可缓存个性化页面
no-cache可存储但每次需校验需要实时性的接口
max-age可缓存时长公开内容按需设置
面向登录用户的响应建议统一使用 private 或 no-store,避免被边缘节点缓存后出现数据串号。
源站下发了不缓存头,但 CDN 侧配置为忽略源站缓存头时,规则会被覆盖,必须核对产品的实际优先级。

隐私接口检查项

  • 响应头带 no-store 或 private
  • CDN 侧把接口路径配置为不缓存
  • 上线后连续两次请求验证都回源
  • 确认没有出现来自边缘缓存的数据串号

易错点

  • 接口被缓存导致数据陈旧或串号,用户看到他人的信息
  • 隐私响应进入共享缓存,形成数据泄露风险
  • 只改源站响应头未确认 CDN 是否遵循,实际仍被缓存
  • 为省流量给接口配长缓存,实时性业务出现数据延迟

数据来源与参考

  • 阿里云 CDN 缓存遵循文档
  • 腾讯云 CDN 动态内容说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌