首页/网络/协议速查/Host 目标主机
HTTP 头与缓存70 条

Host 目标主机

HTTP/1.1 请求必须携带的字段:告知服务器请求哪个虚拟主机/域名,是反向代理与多租户路由的基础。

协议速查网络更新于 2026-10-13

Host 是什么

Host 是请求必须携带的字段:它告诉服务器这次请求的是哪个域名,是虚拟主机路由与多租户隔离的基础。同一台服务器上跑多个站点时,全靠它来决定把请求交给哪个配置块;服务端生成绝对地址、做跳转与写链接时也依赖它。因为客户端可以任意填写这个字段,它也经常成为攻击入口——缓存投毒与链接劫持都从伪造它开始。

基本信息

名称Host(RFC 9110 §7.2)
作用虚拟主机路由、生成绝对地址的依据
必备性HTTP/1.1 请求缺失该字段时服务端应返回请求错误
新版协议在后续版本中对应同名伪头部,承担相同职责
安全要求不可无条件信任,需配合白名单校验

典型使用场景

  • 多站点共存:一台服务器上按域名区分不同站点配置
  • 反向代理转发:网关按域名把请求转到不同后端
  • 多租户隔离:按域名判断租户归属并加载对应配置
  • 生成绝对地址:服务端拼跳转地址与静态资源前缀时使用
  • 本地调试:直连源站地址并手工指定域名,绕过边缘节点验证

多域名分流与本地调试

多域名分流与本地调试
curl -sv https://example.com/ 2>&1 | grep -i 'host:'   # 看实际发出的字段值
curl -si http://1.2.3.4/ -H 'Host: www.example.com'   # 直连源站地址,手工指定域名
nginx -T | grep -n 'server_name'   # 查看站点按哪些域名匹配

配置不当的后果

配置情况后果
缺少默认配置块未匹配的域名落到第一个配置块,可能暴露内部站点
未做白名单校验伪造的域名可影响生成的跳转与链接地址
代理转发时改写字段与后端虚拟主机不匹配,返回未找到或拒绝服务
域名解析与配置不一致请求打到本机却没有对应配置块

安全加固要点

  • 为默认配置块设置明确的拒绝行为,避免任何域名都能匹配到内容
  • 把该字段拼接进跳转地址前先做白名单校验,不要直接使用客户端提供的值
  • 内部系统不要暴露在公网,避免域名枚举与服务探测
该字段可以由客户端任意伪造:若网关只依据它做路由而缺少校验,可能被用来做缓存投毒或把密码重置链接指向攻击者域名,务必配置默认站点并维护域名白名单。
在新一代协议中它被拆分为同名伪头部,语义一致但不能像旧版本那样自由增删。用工具对比协议版本时,注意观察这一点,否则会误判请求头缺失。

易错点

  • 把该字段直接拼进跳转地址或邮件里的链接,被诱导跳转到攻击者域名
  • 代理转发时改写了字段值,与后端虚拟主机不匹配,返回未找到或拒绝服务
  • 缺少默认配置块,未匹配的域名落到第一个站点,内部内容被意外暴露
  • 同一服务器上多个站点共用配置,域名与证书不匹配导致访问告警

数据来源与参考

  • RFC 9110 §7.2 Host

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌