You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HTTP/2 `:authority`头是否需包含端口号?与Host头逻辑是否一致?

HTTP/2 :authority 头的端口号规则详解

嘿,这个问题抓得很准,刚好能把HTTP/2的伪头和HTTP/1.x的Host头逻辑打通来说清楚~

核心结论

:authority头的端口号规则和HTTP/1.x的Host头完全一致,是否需要包含端口号,取决于请求使用的是不是协议的默认端口:

  • 如果是默认端口(HTTPS为443,HTTP为80),:authority不需要带端口;
  • 如果是非默认端口,必须明确带上端口号。

针对你的具体场景

当浏览器向https://server.com:1234/发起请求时,因为1234不是HTTPS的默认端口(443),所以:authority头的值应该是server.com:1234,而不是单纯的server.com。

规范依据

根据HTTP/2的官方规范(RFC 7540),:authority伪头字段的作用等价于HTTP/1.x中的Host头字段,并且严格遵循相同的语法规则。它的核心作用是让服务器识别请求要路由到哪个虚拟主机/服务实例,因此必须完整传递主机名和非默认端口信息(如果存在)。

简单来说,HTTP/2只是把原来HTTP/1.x请求行里的主机信息,移到了:authority这个伪头里,职责完全没变,所以之前关于Host头的端口规则,直接套用到:authority上就对了。

内容的提问来源于stack exchange,提问作者ioquatix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:33:34