Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RFC 3986中的HTTP请求主机值语法_Http_Rfc3986 - Fatal编程技术网

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

RFC 3986中的HTTP请求主机值语法,http,rfc3986,Http,Rfc3986,RFC 3986表示主机(我用大写字母书写,以区别它作为HTTP请求中的参数)值reg name具有异常语法reg name=*(未保留/pct编码/sub delims),其中包括符号+或,据我所知,这在URL权限中是禁止的。标准还指出 由注册名称标识的主机是一个字符序列 通常用于在本地定义的主机或服务中查找 名称注册表,尽管URI的特定于方案的语义可能需要 改为使用特定的注册表(或固定名称表)。这个 最常见的名称注册机制是域名系统(DNS) 并引用,其中语法看起来更像我所期望的。HTTP主机

RFC 3986表示主机(我用大写字母书写,以区别它作为HTTP请求中的参数)值
reg name
具有异常语法
reg name=*(未保留/pct编码/sub delims)
,其中包括符号
+
,据我所知,这在URL权限中是禁止的。标准还指出

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


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

当HTTP最初创建时,使用了许多不同的网络技术。所以HTTP最初被写为传输协议不可知。到了20世纪90年代中期,TCP/IPv4与DNS等互联网上使用的其他协议一起成为唯一使用的网络技术。因此,HTTP的开发很可能不希望DNS只提供某种主机名数据库,而且HTTP标准可能接受比DNS协议更广泛的有效主机名


回答你的问题:可能没有直接关系。但是现在有一种事实上的关系,即在internet上只能看到有效的DNS名称作为HTTP主机名。

请提供更多详细信息。HTTP(RFC 7230)中“主机”头字段的ABNF直接引用RFC 3986中的“主机”ABNF。@JulianReschke right。在RFC 7230中,第5.4节参考RFC 3986中的第3.2.2节。这里是“host=IP literal/IPv4address/reg name”。搜索“reg name”会显示问题中提到的ABNF,但还有一部分我不太清楚:如果我对主机字段值中的地址实施语法分析器,我会认为只有语法看起来像internet URL中的语法,但是这个ABNF包含了在URL中被禁止的标志——这只是我的假设。还有一点需要注意的是,我考虑的地址可能是DNS ONE,但还有其他技术使用主机字段值,它们有自己的语法(这也是假设)。我的问题是我是否理解正确,也就是说:主机字段值语法有一个通用规则,包括IPv4、IPv6和reg名称,更精确的规则是reg名称,也就是地址的某些子集?(也就是说,我从未看到过主机地址exa(mp)le.org,按照“注册名称”规则看是正确的)