RFC 3986 中的 HTTP 请求主机值语法

HTTP request host value syntax in RFC 3986

RFC 3986 表示 Host(我用大写字母书写,以区分它作为 HTTP 请求中的参数)值 reg-name 具有 ABNF 语法 reg-name = *( unreserved / pct-encoded / sub-delims ),其中包括符号 +!,据我所知在 URL 权限中是被禁止的。标准还规定

由注册名称标识的主机是一个字符序列 通常用于在本地定义的主机或服务中查找 名称注册,尽管 URI 的特定于方案的语义可能需要 而是使用特定的注册表(或固定名称 table)。这 最常见的名称注册机制是域名系统 (DNS)。

并引用 RFC 1034 section 3.5,其中的语法看起来更像我所期望的。 HTTP 主机值中的 reg-name 和 DNS 名称语法之间有什么关系?使用与最常见的不同的 HTTP 请求主机值的技术是什么(我理解的只是许多其他技术中的一种)?

HTTP 首次创建时,使用了许多不同的网络技术。所以 HTTP 最初被编写为与传输协议无关。到 1990 年代中期,TCP/IPv4 与互联网上使用的其他协议(如 DNS)一起成为唯一使用的网络技术。因此,HTTP 很可能不是在仅期望 DNS 提供某种主机名数据库的情况下开发的,并且 HTTP 标准可能比 DNS 协议接受更广泛的有效主机名。

实际回答你的问题:可能没有直接关系。但是今天有一个事实上的关系,您将只看到有效的 DNS 名称作为 Internet 上的 HTTP 主机名。