1.输入URL:
用户在浏览器中输入URL,例如http://www.baidu.com,http为协议,www.baidu.com为域名。
2.查找URL对应的IP地址
-
查询浏览器缓存,浏览器一般都会缓存DNS记录一段时间,不同浏览器保存的时候不一样,如果找到则直接返回对应的IP地址,找不到进行第二步;
-
查找本地hosts文件,如果本地hosts文件中有记录,则返回对应的IP地址,如果找不到进行第三步;
-
此时浏览器会发出一个DNS请求到本地的DNS服务器,本地DNS服务器一般是由运营商提供,比如中国移动,中国电信等;
-
首先会在DNS服务器中寻找是否有该域名对应的缓存,如果有直接返回,如果没有本地DNS服务器向DNS根服务器进行查询,此时是一个递归的过程;
-
DNS根服务器接收到这个请求后不会去查找,因为DNS根服务器没有域名与IP地址的对应关系,而是告诉本地DNS服务器去域DNS服务器中查找(比如.com),并把域DNS服务器的地址返回给本地DNS服务器,此时是迭代的过程;
-
本地DNS服务器继续向域DNS服务器发出请求,域DNS服务器接受到请求后不会立刻返回域名对应的IP地址,而且告诉本地DNS服务器,到上一级的DNS服务器中查找(比如baidu),并把上一级DNS服务器的地找告诉本地服务器;
-
本地DNS服务器继续向上一级的DN