5xx 场景速判
五个开头的状态码各有明确分工:500 是应用自身异常,502 是网关从上游收到了无效响应,503 表示服务不可用或过载,504 是网关等待上游超时。只看客户端侧抓包很难区分成因,把网关两侧的流量放在一起对比,才能判断错误是在网关内部产生还是来自上游。
基本信息
| 适用平台 | Wireshark 的 HTTP 解析,适用于各类网关架构 |
|---|---|
| 过滤语法 | http.response.code >= 500 && http.response.code <= 599 |
| 核心差别 | 错误产生在网关自身还是上游链路 |
| 关键手段 | 网关两侧同时抓包 |
典型使用场景
- 区分 502 与 504:前者是上游返回异常,后者是等待上游超时
- 定位错误环节:确认错误由网关产生还是由上游引发
- 排查上游健康:结合上游的连接建立与响应情况
- 验证重试策略:看网关是否对幂等请求做了重试
- 评估影响范围:统计各码点占比与涉及的接口
常用过滤
常用过滤
http.response.code >= 500 && http.response.code <= 599 # 全部服务端错误
http.response.code == 502 # 上游响应异常
http.response.code == 504 # 网关等待上游超时码点对照
| 码点 | 含义 | 排查重点 |
|---|---|---|
| 500 | 应用内部异常 | 应用日志与堆栈 |
| 502 | 网关收到无效的上游响应 | 上游连接建立与响应格式 |
| 503 | 服务不可用或过载 | 限流、排队与容量 |
| 504 | 网关等待上游超时 | 上游处理时长与超时配置 |
只抓客户端侧无法区分 502 与 504 的成因,必须在网关两侧同时取数。两侧数据一对比,就能判断是网关自身处理的问题还是上游链路的问题。
504 的超时窗口是网关的配置值,抓包中体现为一段固定时长的无响应。这段时长本身往往就是配置里的阈值,可以据此反推配置。
五个开头的错误伴随连接重置时,要区分是上游主动重置还是链路中途中断。两者在时间顺序与报文形态上都有区别。