本地处理
DEVDESK / GUIDES

HTTP 401、403、404、502、504:按响应定位问题

同样的请求,在浏览器里是 403,在日志里却显示上游超时。先确认看到的是哪一层响应,再用状态码解释缩小范围。工具中的说明是排查起点,不能替代真实请求证据。

打开工具:HTTP 状态码查询

1. 记录完整响应上下文

在浏览器网络面板或实际 HTTP 客户端中记录方法、路径、时间、状态码、响应头和响应体摘要。如果有 request ID,用它关联网关与应用日志。分享时移除 Cookie、Authorization 和个人数据。

Method: GET
Path: /api/profile
Status: 401
Request ID: demo-request-42
Body: {"error":"missing_credentials"}

2. 401 与 403 要分别检查

401 表示请求缺少有效认证凭据。检查凭据是否发送、是否过期,以及服务端返回的认证挑战。JWT 可以帮助读取时间声明,但解码成功不代表认证有效。

403 表示服务器理解请求但拒绝处理。检查资源权限、组织或租户边界及相关策略。不要把所有 403 都归结为密码错误,也不要只靠换一个 Token 判断问题已解决。

3. 404 不只可能是拼错 URL

检查路径大小写、API 版本、方法对应的路由和资源 ID。代理重写也可能让上游收到不同路径。有些服务会用 404 隐藏资源是否存在,因此还需要结合服务的权限策略和日志。

4. 502 与 504 先关联上下游时间线

502 涉及网关收到无效的上游响应;504 涉及没有及时收到上游响应。比较同一请求在边缘、网关和应用的时间及错误,判断连接、响应格式或处理耗时是否异常。

直接扩大超时时间可能掩盖慢查询。先确认上游健康、容量和耗时分布,再决定是否需要调整超时或业务处理。

5. 复测业务结果,谨慎处理重试

200 表示 HTTP 层面成功,仍要检查响应体中的业务状态。请求超时也不代表写入必然失败;付款、创建记录等操作可能已经执行,重试前应按接口约定检查结果或使用幂等机制。

在状态码工具中分别搜索 401、403、404、502、504,再用演示响应体在 JSON 工具中查看字段。curl 转换只改变命令引用方式,实际请求应在自己的运行环境验证。

继续动手验证