搜索

2010年8月21日星期六

关于域名,我知道的比你多一“点”

熟视无睹真的是一种很奇妙的状态,不幸的是,我昨天跳出了这种状态:

你知道吗?我们每天写的域名都不是标准的!?

通常我们都知道的域名,是用点分隔的字母、数字或连接符的组合,类似
  • Google.com
  • bbs.blogger.com
  • cn.zh-Hans.last.fm
  • ……
但是我如果问您:域名可以以“.”结尾吗?我想大部分人都会说,哪里会有以“.”结尾的域名嘛。

错!其实正确答案不但是“域名可以以‘.’结尾,而且所有完整域名都肯定是以点结尾的”!

根据 DOMAIN NAMES - CONCEPTS AND FACILITIES (RFC 1034) | 3.1. Name space specifications and terminology 的说法(原文我就不引用了,感兴趣的自己去看),域名这种格式代表一种树状结构,类似操作系统文件夹体系,从左到右以点分隔,最开始是底层文件夹名称,每一个点后面就是上一级文件夹的名称,直到最后的根文件夹:
  • <文件夹名1>.<文件夹名2>.<文件夹名3> ……
我们知道,一般 Windows 操作系统的文件夹路径是以“\”符号分隔的文件夹名称,其实域名不过就是把“\”替换成了“.”,然后把顺序颠倒一下而已(Windows 路径是以根开头的:“\文件夹1\文件夹2\文件夹3”),最开头那个“\”代表根文件夹。

那么,而同样依据上面的规范,完整的域名也是以“.”结尾的,它的逻辑是:根域名项被固定命名为空字符(NULL),所以最后一级域名子项必须以“.”结尾,其后跟空字符(NULL),这样谷歌的域名其实应该写做:
  • Google.com.
 只不过大部分浏览器软件如今都会自动在内部加上这个点,从而为用户偷懒了。

哈哈,今天你有一个新发现。

唏嘘一世
应该不是浏览器默认的自动在内部加入了dot,我刚才试了一下,如果服务器中如果没有绑定以dot结尾的域名,是无法通过以dot结尾的域名访问到网站的。


补充一下(我怕有人看了我这篇文章就处处去添个点):

带点的域名和不带点的域名各有用处,不能认为可以相互简单替代!
  • 以点结尾的域名是绝对域名
  • 没有点的是相对域名
解释:

类比于 Windows 的文件系统,如果你在C盘根文件夹下的 <文件夹A> 中储存了 <文件1>,绝对路径为:
  • c:\文件夹A\文件1
然后你在别的文档中引用这个路径;随后如果你移动了 <文件1>,其路径发生了变化,那么对其的引用(绝对路径方式)也会失效。

如果用相对路径的方式:引用这个文档的时候写:
  1.  基准路径:< c:\ >
  2. 相对路径:<文件夹A\文件1>
那么如果你需要把文件夹A移动到d盘,只需要更改基准路径为 即可,免去了逐一更新链接的问题。

域名的问题与之类似:

默认基准路径为空(NULL),如果某一点建立星际网(例如在火星建立网络),需要把目前地球上的网络复制一份去火星,那么只需要在火星的域名解析服务器设置添加 <.Mars> 即可。

今后可能有 .com.Mars / .org.Moon / .com.Earth ... 这样的域名;如果建立星际网的话。

所以目前,不需要使用绝对路径,因为目前互联网体系是统一的,全球统一根域名是“空(NULL)”,可以理解为地球。

最后重申一次:不要使用绝对路径(以点结尾的域名),除非你明白自己在做什么,而且确实需要用到绝对路径。

1 条评论: