首页/网络/抓包与流量分析速查/按 HTTP 方法过滤统计
应用层报文判读71 条

按 HTTP 方法过滤统计

按方法分布快速看出接口行为:GET 多用于读、POST 提交、PUT/PATCH 更新、DELETE 删除;方法分布突变常与重试或爬虫相关。

按方法过滤能看出什么

HTTP 方法在报文里是明文首个字段,按方法过滤与统计能很快看出接口的行为构成:以读取为主还是以写入为主、有无大量重试、是否出现批量删除这类需要重点保护的操作。方法分布发生突变往往对应真实变化,比如客户端版本升级、重试策略上线或被爬虫扫到。需要注意方法语义在链路中并不总是被完整保留,代理与网关都可能改写方法。

基本信息

适用平台Wireshark / tshark 解析的 HTTP/1.x 明文流量
过滤字段http.request.method
统计方式tshark -T fields 导出后按频率聚合
方法语义GET 读取、POST 提交、PUT 替换、PATCH 局部更新、DELETE 删除、HEAD 只要头部、OPTIONS 探测能力

典型使用场景

  • 接口调用量异常排查,先按方法看构成再钻取具体 URI
  • 确认是否有应用在对写操作做自动重试
  • 识别爬虫或扫描行为,通常表现为大量 GET 与 OPTIONS
  • 改造前后对比方法分布,验证客户端升级是否生效
  • 为审计留存写操作清单,重点关注删除与更新类调用
  • 统计接口读写比,为缓存策略提供依据

统计与过滤

统计与过滤
tshark -r http.pcap -Y 'http.request' -T fields -e http.request.method \
  | sort | uniq -c | sort -rn            # 按方法统计频次
# 只看写操作:
#   http.request.method == "POST" || http.request.method == "DELETE"
# 只看失败响应的方法分布:
#   http.request.method && http.response.code >= 400

方法逐项读法

方法语义抓包要点
GET读取资源可能被中间设备缓存,注意命中缓存的情况
POST提交数据重试会重复提交,需与业务幂等策略对照
PUT整体替换资源被改写为 POST 时可判定中间设备改写了方法
PATCH局部更新同上,链路改写会掩盖原始方法
DELETE删除资源审计关注项,出现频次异常应优先核查
HEAD只要响应头无实体,按响应长度判断会误判为空响应
OPTIONS探测可用方法跨域预检与扫描工具都会产生,需区分来源
HEAD 请求只有响应头没有实体,按响应长度字段判断容易误认为空响应,统计时要单独归类。
方法分布要按时间段切开看:按整天汇聚会把突发摊平,掩盖短时间内的异常行为。

易错点

  • 忽略链路改写:代理或网关把非标准方法统一转成 POST 时,只抓靠近服务端的一侧会看不到原始方法
  • 把方法分布当成业务事实:同一业务在客户端与网关处可能呈现不同方法构成,对照两端才准确
  • 汇聚统计掩盖突发:短时段的异常写操作会被整天的平均值稀释
  • HEAD 与 GET 混统:两者响应体不同,混在一起统计会让响应大小与耗时指标失真

数据来源与参考

  • RFC 9110(方法定义)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌