2015-04-06 98 views
0

我已經對正確的主機名語法進行了一些閱讀,但無法確定什麼是真正正確的主機名/ URL語法 請問下列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

這些不是網址,因爲它們缺少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定義了host subcomponent所有URI的語法(和RFC 2616的HTTP(S)的URI遵循)。

你的例子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

  1. 檢查IP-literal

    由於IP-literal要求包圍方括號( [ ... ]),none都不是IP-literal主機名。

  2. 檢查IPv4address

    作爲IPv4address必須包含正好是三個.字符,1.2.3.4.5.6.71.2.3.4.5.6.7.comsome.host.name.com.org不能IPv4address主機名。

    雖然10.123.143.13333有三個.,「13333」不是有效的dec-octet,所以它不是IPv4address

  3. 檢查reg-name

    您所有的例子都是有效的reg-name主機名,如0-9a-z.被允許的字符。

    請注意,這是而不是這意味着這些是DNS中的有效域名。 RFC 3986「不要求特定的註冊名稱查找技術」。