跳到主要内容

网络、缓存和鉴权问题

🌐 用于排查请求失败、缓存不一致、Token 过期、跨域和权限状态不同步。

分层定位

  1. 浏览器层:URL、Method、Headers、Cookie、CORS
  2. 网络层:DNS、代理、TLS、超时、重试
  3. 缓存层:浏览器缓存、CDN、Service Worker、应用缓存
  4. 鉴权层:Token、Session、刷新机制、权限范围
  5. 服务端层:网关、业务服务、数据库和下游依赖

常见症状与方向

  • 仅部分用户失败:权限、灰度、地区或旧缓存
  • 刷新后恢复:前端缓存或状态同步
  • 无痕模式正常:Cookie、扩展或 Service Worker
  • 401 循环:刷新 Token 并发或失败重试无上限
  • 预检失败:CORS 响应头、凭证模式或自定义 Header
  • 数据更新后仍旧:Cache-Control、ETag 或查询缓存 key

排查证据

  • 保存 HAR,记录请求时间线和重定向
  • 对比成功与失败请求的 URL、Header、Cookie 和响应体
  • 记录 Token 的签发、过期时间与 scope,不保存敏感值
  • 检查响应缓存头、Age、ETag 与 CDN 命中信息
  • 绕过缓存、Service Worker 和代理分别验证

修复原则

  • 刷新 Token 使用单航班机制,避免并发刷新
  • 重试必须设置次数、退避和幂等边界
  • 缓存 key 包含所有影响结果的参数与用户维度
  • 401、403、429、5xx 分开处理,不统一提示“网络错误”

回归验证

  • Token 正常、临期、过期和撤销均覆盖
  • 多标签页同时刷新 Token 不冲突
  • CDN 与浏览器缓存更新策略已验证
  • 弱网、离线、超时和重试已测试
  • 日志不包含 Token、Cookie 等敏感信息