1.首先你得在浏览器里输入网址(假设你访问www.zhihu.com)
2.浏览器查找域名的IP地址
导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下:
- 浏览器缓存——浏览器会缓存DNS记录一段时间。有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存各自固定的一个时间(2分钟到30分钟不等)。
- 系统缓存——如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。
- 路由器缓存——接着,前面的查询请求发现路由器,它一般会有自己的DNS缓存。
- ISP DNS缓存——接下来要check的就是ISP缓存DNS的服务器。在这一般都能找到相应的缓存记录。
- 递归搜索——你的ISP的DNS服务器从根域名服务器开始进行递归搜索,从.com顶级域名服务器到zhihu的域名服务器。一般DNS服务器的缓存中会有.com域名服务器中的域名,所以到顶级服务器的匹配过程不是那么必要了。
首先,浏览器所在的主机向本地DNS服务器发送一个含有知乎域名的DNS查询报文。本地DNS服务器把查询报文转发到根DNS服务器,该根服务器注意到其com后缀并向本地DNS服务器返回com的顶级域名服务器的IP地址。该本地DNS服务器再次向com
DNS服务器发送查询请求,com DNS服务器注意到http://zhihu.com后缀并用负责该域名的权威DNS服务器的IP地址作为回应。最后,本地域名服务器将含有http://zhihu.com的IP地址的响应报文发送给客户端主机。
这里的查询过程是包含递归查询和迭代查询的,客户端主机发送给本地服务器的查询时递归查询,而后面的三个查询是迭代查询。
一个域名可以对应多个ip地址实现负载均衡。
3.浏览器给Web服务器发送一个HTTP请求
4.服务器处理请求,返回HTTP响应
5.浏览器显示响应