朋友給我一個鏈接:
http://dk./
說「看,世界上最短的域名」。
看到 dk. 這個東西,我的第一感覺是「這也是個域名嗎?」
第二感覺是「這是個合法的域名嗎?」
點擊之后,發現網頁轉到 https://www.dk-hostmaster.dk
,一個丹麥網站。
千真萬確,dk. 是一個合理的域名。
我很奇怪,因為原來以為域名都是一堆單詞,用點號隔開。而這個域名點號出現在最末尾,這是我以前沒見過的。
因為維基百科上有如下解釋:
域名(英語:Domain Name),又稱網域、網域名稱,是由一串用點分隔的名字組成的Internet上某一臺計算機或計算機組的名稱,用于在數據傳輸時標識計算機的電子方位(有時也指地理位置)。
然后去 Google 上搜域名的規則,看到一篇文章中給出的比較通用的檢測域名的正則表達式:
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
請注意結尾有 .?
。也就是說,一個完整域名的結尾可以有 1 個或 0 個點號。
這篇文章中還提到:
完整的域名至少包括兩個名字(比如google.com,由google和com構成),最后可以有一個表示根域的點(在規范中,最后有一個點的才是完整域名,但一般認為包括兩個以上名字的域名也是完整域名,哪怕它后面沒有點)。
恍然大明白。原來標準域名最后是應該有個點號的。又一個朋友提醒我,進行域名解析時,一般會在域名結尾加個點。
看了一下確實如此。( 好像是 NS 記錄、CNAME 記錄都會給域名加個點,而 URL 轉發不會。 )
既然域名最后可以有個點,那么無點也應該是個合法的域名,也就是說,dk 也應該是一個域名了?
果然,在終端執行 ping dk,得到如下結果:
% ping dk
PING dk (193.163.102.24): 56 data bytes
得到 193.163.102.24 這個 ip。我們再執行 ping www.dk-hostmaster.dk,會得到相同的 ip:
% ping www.dk-hostmaster.dk
PING www.dk-hostmaster.dk (193.163.102.24): 56 data bytes
還有一個更直接的證據證明 dk 確實是一個域名,你可以執行一下 wget dk:
% wget dk
--2014-04-29 22:26:52-- http://dk/
Resolving dk... 193.163.102.24, 2a01:630::40:b1a:b1a:2011:1
Connecting to dk|193.163.102.24|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.dk-hostmaster.dk/ [following]
--2014-04-29 22:26:54-- https://www.dk-hostmaster.dk/
Resolving www.dk-hostmaster.dk... 193.163.102.24, 2a01:630::40:b1a:b1a:2011:1
Connecting to www.dk-hostmaster.dk|193.163.102.24|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html'
[ <=> ] 14,367 28.4KB/s in 0.5s
2014-04-29 22:26:59 (28.4 KB/s) - 'index.html' saved [14367]
不僅找到了域名的 ip,還把首頁給下載了下來。因為 wget 的參數是一個域名,所以,dk 無疑是一個合理的域名了。
那為什么有人在瀏覽器地址欄輸入 dk 并回車,打不開對應的網站呢?
可能是瀏覽器的問題吧。我在 Chrome 里 輸入 dk 并回車,可以打開之前提到過的那個丹麥網站。
那為什么 com, net, cn 什么的,不能像 dk 一樣能打開或者能 ping 到 ip 呢?可能 com 等歷史比較悠久,已經成為一種無主的公共資產。而 dk 可能比較新,沒有太多歷史包袱,可以搞一些個性玩法?又或者, cn 也可以這么玩?
綜上,dk 短短兩個字母,卻也是一個域名。