访问一个网站实际上是访问存储这个网站内容的web服务器,一般有相应的ip地址,但ip地址都以数字组成, 如10.0.0.7,不方便记忆.
域名解析服务(Domain name system,OSI模型中第7层应用层的协议)解决了这个难题. 每个网站都有一个域名,如百度www.baidu.com,每个网站的ip地址和域名有映射关系,这样一来要访问某网站就不用输入ip了,输入域名即可.
各级域名服务器的功能:
根服务器"/":全球共有13台,都在美国,缓存中保存了所有顶级域名的映射(它“知道”com,org,cn等等这些顶级域名服务器的ip地址).
顶级域名服务器:(以.com服务器举例,它“知道”所有****.com域名对应的ip地址,如baidu.com).
二级域名服务器:(以baidu.com服务器举例,它“知道”所有****.baidu.com域名对应的ip地址,如www.baidu.com).
当用户访问一个网站时的DNS协议解析过程(以百度首页www.baidu.com为例):
本地主机输入域名后,先查找本地主机缓存中的DNS信息,(一般hosts文件中设置的DNS解析仅用于测试),如果在本地缓存DNS中没有找到,则执行递归查询:
- 向本地DNS服务器LDNS (local DNS)发出查询请求,如果找到www.baidu.com对应的ip地址,就直接获取,如果没有找到,LDNS服务器会向根服务器发出查询请求(目前全世界一共只有13台根服务器,都在美国).
- 根服务器将顶级域名.com服务器的IP地址返还给LDNS服务器.
- LDNS服务器向顶级域名服务器.com发出查询请求,顶级域名服务器将baidu.com对应的二级域名服务器ip地址返还给LNDS服务器.
- LDNS服务器向二级域名服务器.baidu.com发出查询请求,二级域名服务器将www.baidu.com对应的ip地址返还给LNDS服务器.
- 本地主机收到LDNS服务器的响应信息之后将解析记录进行缓存,利用IP地址访问百度网站服务器.