例如:我们要解析www.baidu.com
1、首先,浏览器会搜索自己的DNS缓存 2、如果没有,则搜索操作系统的DNS缓存 3、若没有,则搜索操作系统的hosts文件 4、若没有,则操作系统将域名发送至 本地域名服务器(递归查询方式),本地域名服务器 查询自己的DNS缓存,查找成功则返回结果,否则(以下是迭代查询方式) 4.1 本地域名服务器 向根域名服务器(其虽然没有每个域名的具体信息,但存储了负责每个域,如com、net、org等的解析的顶级域名服务器的地址)发起请求,此处,根域名服务器返回com域的顶级域名服务器的地址 4.2 本地域名服务器 向com域的顶级域名服务器发起请求,返回baidu.com权限域名服务器(权限域名服务器,用来保存该区中的所有主机域名到IP地址的映射)地址 4.3 本地域名服务器 向baidu.com权限域名服务器发起请求,得到www.baidu.com的IP地址 5、本地域名服务器 将得到的IP地址返回给操作系统,同时自己也将IP地址缓存起来 6、操作系统将 IP 地址返回给浏览器,同时自己也将IP地址缓存起来 7、至此,浏览器已经得到了域名对应的IP地址 8、得到IP地址后,接下来就是TCP的三次握手建立连接 9、建立TCP连接之后发起HTTP请求 10、服务器收到请求后响应请求 11、接下来就是浏览器解析html代码,获得资源(css,js等等) 12、接收完之后四次挥手断开连接 13、将请求的资源展示在界面上,呈现给用户
|