别拿dk不当域名
朋友给我一个链接:
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 短短两个字母,却也是一个域名。