网络、缓存和鉴权问题
🌐 用于排查请求失败、缓存不一致、Token 过期、跨域和权限状态不同步。
分层定位
- 浏览器层:URL、Method、Headers、Cookie、CORS
- 网络层:DNS、代理、TLS、超时、重试
- 缓存层:浏览器缓存、CDN、Service Worker、应用缓存
- 鉴权层:Token、Session、刷新机制、权限范围
- 服务端层:网关、业务服务、数据库和下游依赖
常见症状与方向
- 仅部分用户失败:权限、灰度、地区或旧缓存
- 刷新后恢复:前端缓存或状态同步
- 无痕模式正常: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 等敏感信息