应用层报文判读71 条

4xx 场景速判

400 报文格式错、401 未认证、403 禁止、404 不存在、408 超时、429 限流:同一码点在不同网关下含义有差异,结合响应体与上下文判断。

4xx 该怎么速判

4xx 表示问题出在请求侧,但同一码点在不同链路位置含义并不完全一致:400 报文格式错、401 未认证、403 被禁止、404 不存在、408 请求超时、429 被限流。判断时除了码点本身,还要看是谁生成的——网关生成的 4xx 与源站生成的往往格式不同。把码点、生成方、URI 特征三项结合起来,才能把方向收敛到客户端、鉴权、路由或限流中的某一类。

基本信息

适用平台Wireshark / tshark 解析的 HTTP 明文流量
过滤字段http.response.code
范围写法http.response.code >= 400 && http.response.code < 500
辅助线索Server 头、响应体格式、URI 特征

典型使用场景

  • 接口报大量失败,先按码点分组再决定排查方向
  • 确认 404 激增来自版本回退还是扫描行为
  • 核对 429 的触发节奏与限流策略是否匹配
  • 区分鉴权失败与权限不足两类 4xx 的处理路径
  • 在灰度发布后对比新旧版本接口的码点分布
  • 为客户端重试策略提供依据:哪些码点值得重试

常用过滤

常用过滤
http.response.code >= 400 && http.response.code < 500  # 全部 4xx
http.response.code == 404                               # 不存在
http.response.code == 429                               # 被限流
http.response.code == 403 && http.request.uri contains "/api"
# 结合 Server 头区分网关生成与源站生成
# 结合 URI 特征区分正常业务错误与扫描流量

码点逐项读法

码点含义优先核查
400请求格式错误请求体格式、编码与必填字段
401未认证凭证是否携带、是否过期
403被禁止访问权限策略、来源限制与路径规则
404资源不存在路由配置、版本兼容与扫描流量
408请求超时客户端发送节奏与中间设备超时
429请求过多限流阈值与客户端重试节奏
429 通常带重试时间提示头,客户端若忽略该提示持续请求,会把限流状态一直维持下去。
404 突然增多先看 URI 特征:集中在同一前缀多为路由或版本问题,分散且带特征串则更像扫描。
排查前先按客户端分组统计同一码点的分布:只有单个客户端或单个版本异常时,方向更可能落在该客户端的实现上,而不是服务端整体策略。

易错点

  • 看到 404 就当路由问题:扫描与爬虫会产生大量 404,需先按 URI 特征分流
  • 把网关返回的 4xx 当成源站行为:格式与来源不同,误判会让排查方向跑偏
  • 忽略 429 的重试提示:不做退避的重试会持续触发限流,问题被放大
  • 只统计总数不看分布:按码点与 URI 分组才能看出是单点问题还是普遍现象

数据来源与参考

  • RFC 9110(4xx)
  • RFC 6585(429)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌