2.1 DNS协议
DNS协议的作用是将域名解析为IP。我们知道网络上每个站点的位置是使用IP来确定的,所以要想访问一个网站首先就要知道它的IP,不过由数字组成的IP记起来实在不方便,所以就设计了比较好记的域名来代替IP,这就像我们平时看电视的时候只需要记着“中央一套”“中央二套”,而不需要去记它们是什么频率,不过实际传输还是需要按频率来传输的(对于老式用天线接收的电视来说),在我们选择了相应的频道后电视就会自动接收相应频率的数据,频道和频率的转换过程是电视机自己来处理的,但这种方式并不适合网络上的域名和IP的转换,首先是因为域名的数量非常多,如果让客户端的电脑自己去处理会比较慢,另外域名和IP的对应关系也不像电视频道那样稳定,而是经常在变化,所以就需要有专门将域名解析为IP的服务器,这就是“DNS服务器”,我们把域名发过去它就可以给我们返回相应的IP,在Windows中可以使用nslookup命令来查看DNS解析的结果,如使用nslookup命令查看淘宝的解析记录的结果如图2-1所示。
图2-1 使用nslookup命令查看淘宝IP
从这里可以看出我现在使用的DNS服务器地址是114.114.114.114,解析到www.taobao.com的IP是112.25.59.51和112.25.59.41,而且它是通过CNAME方式解析的,原始设置IP的域名是www.gslb.taobao.com.danuoyi.tbcache.com。
世界各地有很多DNS服务器,ISP会给我们提供默认的DNS服务器,也有一些大型公用的DNS服务器可以使用,比如Google的8.8.8.8和国内的114.114.114.114。我们直接访问的DNS服务器叫本地DSN服务器,它本身也没有域名和IP的对应关系,在我们发出请求的时候它会从主DNS服务器获取然后保存到缓存中,下次再有相同的域名请求时直接从缓存中获取就可以了。
使用域名代替IP主要是为了方便记忆,不过域名很多时候用起来也不是那么方便,如果再加上很长的子目录和查询参数,基本就成了只有机器和专业人员才能读得懂的内容了,正因为这样导航网站才有了很大的需求。可能有人会觉得导航站主要是将键盘输入改成点击打开从而方便了操作而不是域名的问题,当然操作方式改变也是非常重要的一个因素,不过域名本身使用不方便也是非常重要的一个因素,这一点从百度指数里查看“淘宝网”的搜索量就可以看出来,同样是输入但是很多人是通过在百度搜“淘宝网”打开淘宝的而不是直接在地址栏输入www.taobao.com打开的。其实微信的公众号也从一定程度满足了这方面的需求。如果从这个需求出发仔细琢磨应该还有很大的发展空间。