首页/网络/抓包与流量分析速查/Wireshark 过滤 HTTP 状态码
Wireshark 技巧75 条

Wireshark 过滤 HTTP 状态码

http.response.code 匹配响应状态码,可精确到单一码或区间(>= 500);排查 4xx/5xx 批量筛选时用区间条件更高效。

状态码过滤在做什么

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 且伴随连接重置,优先查后端进程与连接池
  • 重定向码的数量突然上升,值得确认是否有人改了访问协议或域名配置

易错点

  • 在未解密的 HTTPS 流量上使用状态码字段会永远为空,先确认是否具备解密条件
  • 响应被截断时状态码解析不出来,空结果不等于没有错误响应
  • 只看状态码不看请求路径,定位不到具体是哪个接口出问题
  • 把 4xx 与 5xx 混在一起统计,会掩盖真正需要处理的服务端故障
  • 通过代理访问时状态码可能是代理返回的,与后端真实响应不同,需结合拓扑判断

数据来源与参考

  • Wireshark 显示过滤器参考(http.response.code)
  • RFC 9110(状态码)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌