API 调试时如何阅读 HTTP 状态码

把状态码类别、响应体、响应头和日志放在一起看,避免把一个状态码当成完整诊断结论。

先看状态码类别

1xx 是信息响应,通常出现在协议协商过程中。

2xx 表示 HTTP 请求成功,但响应体仍要按业务规则复核。

3xx 指向重定向或缓存验证,需要检查 Location 和缓存相关响应头。

4xx 通常表示服务器拒绝当前请求。

5xx 通常表示服务器、网关或上游服务失败。

收集状态码周边证据

记录请求方法、URL、查询参数、请求头、请求体、响应体、请求 ID 和时间戳。缺少 Authorization 头导致的 401,和 Token 过期导致的 401 处理方式不同;staging 环境的 404 也可能只是路由还没部署。

状态码不能证明什么

状态码不能证明域名可信、业务数据有效,也不能证明重试一定安全。应把它当作协议信号,再单独验证业务规则和系统状态。

常见问题

关于本文主题

200 响应一定代表业务成功吗?

不一定。它只表示 HTTP 请求成功,响应体里仍可能包含校验警告、部分结果或应用层错误。

所有失败请求都应该重试吗?

不应该。只有操作安全或具备幂等性时才适合重试;遇到 408、429、502、503、504 等暂时性问题时也要使用退避策略。

这篇指南能替代服务端日志吗?

不能。状态码可以帮助框定问题,但根因分析仍需要服务端日志和请求 ID。

延伸阅读

继续探索