我已经对正确的主机名语法做了一些阅读,但无法弄清楚什么是真正合适的主机名/ URL语法 如果以下URL在语法上是正确的,请告诉我吗?
1.2.3.4.5.6.7/something
10.123.143.13333/something
1.2.3.4.5.6.7.com/something
some.host.name.com.org/something
这些只是我无法弄清楚的一些例子。 这些网址是否正确?
答案 0 :(得分:0)
这些不是网址,因为它们缺少scheme。
假设您指的是HTTP URL,它们将是:
http://1.2.3.4.5.6.7/something
http://10.123.143.13333/something
http://1.2.3.4.5.6.7.com/something
http://some.host.name.com.org/something
RFC 3986定义了所有URI的host subcomponent语法(HTTP(S)URI的RFC 2616如下)。
示例URI的主机名为:
1.2.3.4.5.6.7
10.123.143.13333
1.2.3.4.5.6.7.com
some.host.name.com.org
有效主机名遵循IP-literal
,IPv4address
或reg-name
定义的语法(在上面链接的部分中):
检查IP-literal
:
由于IP-literal
需要括号方括号([
... ]
),所以没有IP-literal
个主机名。
检查IPv4address
:
由于IPv4address
必须包含三个.
个字符,1.2.3.4.5.6.7
,1.2.3.4.5.6.7.com
和some.host.name.com.org
不能是IPv4address
个主机名。
虽然10.123.143.13333
有三个.
,但“13333”不是有效dec-octet
,因此它不是IPv4address
。
检查reg-name
:
您的所有示例都是有效的reg-name
主机名,因为0-9
,a-z
和.
是允许的字符。
请注意,不表示这些是DNS中的有效域名。 RFC 3986“并未强制要求使用特定的注册名称查找技术”。