http.host 是什么
http.host 匹配 HTTP 请求头里的 Host 字段。同一台服务器或同一个反向代理上往往承载多个域名,只看 IP 或端口无法区分业务,用 Host 就能把流量按业务维度切出来;再叠加请求路径,就能精确锁定某个接口的请求与响应。
基本信息
| 适用工具 | Wireshark 3.x / 4.x |
|---|---|
| 字段 | http.host(请求头中的 Host 值) |
| 匹配写法 | == 精确匹配、contains 子串匹配 |
| 相关字段 | http.request.uri、http.response.code |
| 前提 | 明文 HTTP/1.x,HTTPS 需解密 |
典型使用场景
- 多域名共用一个入口时,按域名切出业务流量
- 定位某域名的错误响应,统计其响应码分布
- 区分测试域名与生产域名的请求,避免误判
- 核对反向代理是否正确转发到目标站点
- 结合请求路径分析单个接口的行为
常用示例
常用示例
http.host == "api.example.com" # 精确匹配域名
http.host contains "test" # 子串匹配
http.host contains "test" && http.response.code >= 400 # 只看测试域名的错误
http.request && !http.response # 有请求无响应
http.host && ip.addr == 10.0.0.9 # 结合服务端地址写法与适用面
| 写法 | 含义 | 注意 |
|---|---|---|
| host == 域名 | 完全等于该值 | 带端口的 Host 不命中 |
| host contains 子串 | 包含该子串 | 子串过短会误命中 |
| http.request 且无 http.response | 未见响应的请求 | 排除抓包未覆盖的时段 |
| 结合 IP 过滤 | 限定具体服务端 | 多实例部署时更精确 |
HTTP/2 中的对应字段是 http2.header.value 配合 :authority 伪头,Host 字段在该协议下不存在。
Host 值可能带端口号,例如 example.com:8080,精确匹配时要把端口一起写上。
补充要点
- 先按主机名切出业务,再按路径锁定接口,是排查接口问题的常见顺序
- 同一入口承载多个域名时,按 Host 过滤比按服务端地址过滤更准确
- 统计各域名的请求规模可直接用 HTTP 统计视图的域名维度
- 客户端用地址直连时请求头里通常仍带 Host,以实际报文为准
把 Host 加为自定义列后,报文列表里可以直接看到每个请求属于哪个站点。
反向代理改写请求头时,抓包里看到的取值可能与浏览器地址栏不同,需结合转发配置确认。