状态码过滤在做什么
http.response.code 匹配响应行里的三位状态码,可以精确到某一个码,也可以用不等号筛区间,例如所有 5xx 一次看完。它是定位服务端错误最直接的入口:先筛出错误响应,再叠加请求 URI 就能得到「哪些接口在报错」。要注意该字段只在解析出响应行时才存在,分块传输或异常响应可能解析不出来,这时需要退回到传输层判断。加密流量必须先解密才能使用这些字段。
基本信息
| 精确匹配 | http.response.code == 502 |
|---|---|
| 区间匹配 | http.response.code >= 500 |
| 集合匹配 | http.response.code in {301, 302, 307} |
| 配套字段 | http.request.uri、http.host、http.request.method |
| 前提 | 仅对能解析出 HTTP 响应行的明文流量生效 |
典型使用场景
- 排查网关类错误:直接筛 502 与 504,确认是否集中在某个上游
- 统计服务端故障规模:用区间筛全部 5xx,看量级与时间分布
- 核对跳转策略:筛 3xx 确认重定向链路是否符合预期
- 定位鉴权问题:筛 401 与 403,区分未登录与权限不足
- 按接口核对错误:状态码与请求路径叠加,得到具体是哪个接口在报错
常用示例
常用示例
http.response.code == 502 # 网关错误
http.response.code >= 500 # 全部服务端错误
http.response.code in {301, 302, 307} # 重定向类
http.response.code == 404 && http.host contains "api" # 某域名下的未找到
http.response.code >= 400 && http.request.uri contains "/pay" # 某接口的错误响应
!http.response.code >= 400 # 排除错误,只看正常响应状态码分段与含义
| 区间 | 含义 | 排查方向 |
|---|---|---|
| 2xx | 成功 | 关注响应时间与返回体大小而非状态 |
| 3xx | 重定向 | 核对跳转目标与缓存策略 |
| 4xx | 客户端类错误 | 核对请求参数、鉴权与路径是否正确 |
| 401 与 403 | 未认证与无权限 | 先看凭证是否送达,再看权限配置 |
| 404 与 410 | 资源不存在与已移除 | 核对路由与静态资源路径 |
| 5xx | 服务端类错误 | 关注后端服务可用性、超时与上游连接 |
把状态码与请求路径、主机名叠加使用,能从「有一批 5xx」推进到「哪个接口、哪个域名在报错」,这是应用层排障里效率最高的一步。
状态码字段只在能解析出响应行时存在。响应被截断、使用非标准写法或走加密通道时字段为空,此时结果为空不代表没有错误响应,需要退到传输层核对。
与传输层配合
与传输层配合
http.response.code == 502 && tcp.analysis.retransmission # 错误响应是否伴随重传
tcp.stream == 12 && http.response.code >= 500 # 单条流里的错误响应
http.response.code == 504 && frame.time_relative > 30 # 超时错误出现的时间点判读要点
- 4xx 偏多通常是客户端或调用方参数问题,不应直接归因服务端
- 5xx 集中出现在某个上游地址时,问题范围可以立刻缩小到那台服务器
- 同一接口反复出现 502 且伴随连接重置,优先查后端进程与连接池
- 重定向码的数量突然上升,值得确认是否有人改了访问协议或域名配置