首页/网络/抓包与流量分析速查/HTTP 状态码家族过滤
应用层报文判读71 条

HTTP 状态码家族过滤

按家族过滤比逐个码点高效:2xx 成功、3xx 重定向、4xx 客户端、5xx 服务端;先看家族分布再下钻具体码点,定位速度更快。

状态码家族过滤

按状态码家族过滤比逐个码点更高效: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,此时真实原因要靠网关两侧同时抓包才能区分。

易错点

  • 字段只在响应行解析到后可比较大小,异常报文下会缺失
  • 被截断的响应仍可能显示 200,实体完整性要用内容长度核对
  • 只看家族不看具体码点:4xx 里混着正常的鉴权挑战,不能一律当故障
  • 统计错误率时不区分家族,把重定向也算成失败会得出虚高数字

数据来源与参考

  • RFC 9110(状态码)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌