当输入一个网址后回车,实际发生什么
- 首先在浏览器上输入网址后回车
- 浏览器帮助找到域名对应的IP 地址,专业术语成为域名解析。举个例子,如果你要打开百度页面,你可以输入www.baidu.com, 这个名字我们容易记住,但实际上我们也可以输入ip http://115.239.210.27, 进入百度页面;浏览器就是一个协调员,帮你找人把www.baidu.com 找到对应的IP地址 http://115.239.210.27; 好处是:用户只要记住名字(域名),不需要记住乏味的数字了!
接着,说下DNS查找过程,主要包括如下:
- 查询浏览器自身的DNS缓存 - 从用户角度,用户打开浏览器访问网址时,浏览器先查询自身的DNS缓存,查询的时间是浏览器自身定义的,火狐浏览器默认是60秒,有些浏览器可以修改这个时间如火狐浏览器。举个例子,你曾经访问了www.baidu.com, 它对应的IP 115.239.210.27 就被浏览器记录在一个文件里,第二次访问的时候,浏览器能从这个文件里面找到对应的ip地址115.239.210.27。
- 查询操作系统缓存 - 如果在浏览器的自身DNS缓存中没有找到需要的记录,浏览器会做一个系统调用 (windows里是gethostbyname). 操作系统的dns缓存可通过注册表修改。
- 路由器缓存-如果还没找到记录话,接着浏览器会发查询请求到路由器,一般会有自己存放的DNS缓存
- 查询运营商 DNS 缓存 - 查询仍然无结果,再向运营商DNS 缓存查询。
- 递归搜索 - 如果仍然没有结果,你的运营商的DNS服务器从.com顶级域名服务器开始进行递归搜索,从.com顶级域名服务器开始,如果没找到,返回服务器B地址并查找IP地址,如果没有话,返回域名服务器C并查找IP地址,如果还没有,返回域名服务器C并查找IP地址,直到在最终域名服务器中找到对应的IP地址