域名访问是如何找到正确的DNS并访问主机IP的?
时间:2023-02-17 06:20:01 | 来源:建站知识
时间:2023-02-17 06:20:01 来源:建站知识
## 首先域名是分层的:
互联网中的域名是有结构和规划的:
* 根域(`.`表示根域,根域名的服务器只用13台)
* 顶级域(com, edu, gov, org, cn, uk等等,一般为组织域和国家地区域,由域名分配组织ISO决定)
* 二级域(Microsoft, zhihu, douban,google等等,是自己申请的(需要购买))
* 三级域(www, NEWS等,三级域名是申请完二级域名后自己规定的)
`三级域名.二级域名.顶级域名`组成完整域名空间,此域名全球唯一。
## 下面是查询过程,以"
http://www.zhihu.com"为例:
1. 当你在浏览器输入域名"
http://www.zhihu.com"之后,浏览器会向本地DNS发送域名查询请求,本地DNS如果有对应的缓存则会找到对应IP并将IP返回,如果没有则会向根DNS服务器发送查询。
2. 根DNS服务器知道所有的顶级域(其中包括`com`)的DNS服务器的IP,会把域名对应的顶级域的DNS服务器IP返回,本地DNS服务器继续向顶级域的DNS服务器(本例中是`com`)发送查询。
3. 顶级域DNS服务器知道所有的二级域(其中包括`zhihu`)的DNS服务器的IP,会返回二级域DNS服务器IP,本地DNS服务器继续向二级域DNS服务器发送查询。
4. 二级域DNS服务器知道所有的三级域(其中包括`www`)的主机对应的IP,它会返回正确的Web服务器IP给本地DNS服务器。
5. 本地DNS服务器告知你Web服务器IP,之后你的电脑会通过IP与路由器找到Web服务器。
购买网络主机时,网络主机的服务公司会告诉你他们的DNS服务器地址,而你注册域名后,需要告诉你的注册商你的DNS服务器是什么(即互联网上DNS服务器的IP或主机名)。
之后你注册的域名就可以使用了,你的本地DNS服务器可能不知到这个域名,但请求会传到根DNS服务器,根DNS服务器知道谁知道所有.com映射的主机名和IP,这是注册商帮你做的,这样信息就会在互联网上散播并缓存。