第 4 课

在日志与 API 中调试 URL

用拆解后的组成部分调试重定向、签名、缓存键和追踪链接。

生产环境出现 URL bug 时,完整字符串通常很吵。先解析,再逐个组成部分对比。

重定向问题

调试重定向时检查:

  • 协议与主机
  • 路径是否带尾部斜杠
  • 查询值中是否包含编码后的 URL
  • 片段值是否根本不会到达服务器

OAuth 重定向问题经常藏在嵌套 URL 中:

redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback%3Fnext%3D%252Fbilling

一层一层解码。一次性全部解码可能会掩盖哪个分隔符属于哪一层。

签名问题

调试签名 URL 时对比:

  • 参数顺序
  • 百分号编码
  • 包含和排除的字段
  • 时间戳与过期时间
  • 主机与路径大小写规则

签名方和校验方必须使用同一套 URL 规范化规则。

缓存问题

缓存可能把这些 URL 视为不同:

?a=1&b=2
?b=2&a=1

也可能把它们规范化为同一个缓存键。你需要知道 CDN、代理或应用层采用哪种规则。

实用工作流

  1. 保存原始 URL,保持和观察到的一模一样。
  2. 拆分成组成部分。
  3. 只在当前检查的层级解码。
  4. 对比预期与实际组成部分。
  5. 使用明确规则重建 URL。

目标不是让 URL 变漂亮,而是保留接收系统期望的含义。

想动手练习时,可使用 DevCove 相关工具——可选,不属于本课正文。

打开相关工具

返回课程概览