状态码家族过滤
按状态码家族过滤比逐个码点更高效:2 开头表示成功,3 开头是重定向,4 开头是客户端错误,5 开头是服务端错误。先看家族分布确定问题落在哪一侧,再用比较条件下钻到具体码点,定位速度明显更快。
基本信息
| 适用平台 | Wireshark 显示过滤器 |
|---|---|
| 语法 | http.response.code >= 500 这类比较条件 |
| 家族划分 | 2xx 成功、3xx 重定向、4xx 客户端错误、5xx 服务端错误 |
| 标准依据 | RFC 9110(状态码定义) |
典型使用场景
- 快速分类:先统计各家族数量,判断问题归属
- 下钻码点:在确定的家族内再按具体码点精确过滤
- 与路径结合:同一响应码在不同接口含义可能不同
- 变更验证:上线前后对比各家族的占比变化
- 建立观测基线:把家族分布当作常规观测指标
常用过滤
常用过滤
http.response.code >= 500 # 服务端错误
http.response.code >= 400 && http.response.code < 500 # 客户端错误
http.response.code == 302 || http.response.code == 301 # 常见重定向家族含义
| 家族 | 含义 | 常见排查方向 |
|---|---|---|
| 2xx | 成功 | 关注耗时而非错误 |
| 3xx | 重定向 | 看跳转目标与跳数 |
| 4xx | 客户端错误 | 请求参数、权限与鉴权 |
| 5xx | 服务端错误 | 应用异常与上游依赖 |
同一个响应码在不同接口上的含义可能不同。有的接口用 404 表示资源不存在,有的用它表示路由未配置,结合路径一起过滤才能精确判断。
字段只有在响应行被解析出来之后才能比较大小,异常报文下会缺失。过滤结果为空时先确认响应行是否完整,而不是直接断定没有错误。
被截断的响应依然可能显示成功码,实体是否完整要用声明的内容长度与实际捕获字节数核对,不能只看状态码。
客户端错误与服务端错误在实际系统里的边界并不总是干净:网关可能把上游异常统一改写成 5xx,此时真实原因要靠网关两侧同时抓包才能区分。