请求 URI 是什么
http.request.uri 匹配 HTTP 请求行中的路径与查询串,不包含主机名——主机名要另看 Host 头。它是定位「哪个接口慢、哪个接口报错」最直接的字段:配合 http.response.code 可以只保留某接口的非 200 响应,精确度远高于按端口或连接过滤。
基本信息
| 适用工具 | Wireshark 3.x / 4.x |
|---|---|
| 字段 | http.request.uri,含路径与查询串 |
| 相关字段 | http.request.full_uri 含协议与主机;http.host 只看主机 |
| 匹配写法 | contains 子串、== 精确、matches 正则 |
| 前提 | 明文 HTTP/1.x;HTTPS 需先解密 |
典型使用场景
- 定位某个接口的报错:URI 含特定路径且响应码非 200
- 统计某接口的请求次数与响应码分布
- 排查回调类流量:抓住回调路径确认对端是否回访
- 对比改造前后同一接口的响应时延
常用示例
常用示例
http.request.uri contains "/login" # 子串匹配
http.request.uri == "/api/v1/users" # 精确匹配,查询串不同则不命中
http.request.uri matches "/api/v[0-9]+/users" # 正则匹配
http.request.uri contains "callback" && http.response.code != 200 # 只看回调失败写法对照
| 写法 | 匹配范围 | 说明 |
|---|---|---|
| uri == "/login" | 完全等于该路径 | 带查询串就不命中 |
| uri contains "/login" | 路径中包含子串 | 最常用,容忍查询串变化 |
| uri matches 正则 | 按正则表达式 | 需要模式化匹配时用 |
| full_uri | 含协议与主机名的完整 URL | 跨域名区分时更省事 |
URI 匹配区分大小写,服务对路径大小写不一致时要放宽条件或分别写两个条件。
HTTP/2 里没有请求行,对应字段是 http2.header.value 配合 http2.header.name == ":path"。
进阶要点
- 需要跨域名区分时改用 full_uri,避免把不同站点的同名路径混在一起统计
- 接口路径带版本号时分别统计,便于灰度发布前后对比
- 把 URI 加为自定义列,列表里直接看到每个请求的目标接口
- 统计接口错误率用 HTTP 统计视图看响应码分布,比逐包数更快
- 查询串含义不同的同一路径,统计前先归并再比较
HTTP/2 场景请使用 http2.header.value 配合 :path 伪头,http 前缀的字段在该协议下不生效。
配套字段
- 看请求方法用 http.request.method
- 看响应状态用 http.response.code
- 统计域名维度用 HTTP 统计视图
- 要含主机名的完整地址用 http.request.full_uri
- 加密流量需先解密才能使用上述字段