- 完整过程:
- 域名解析
- 根据IP建立TCP连接(三次握手)
- 建立TCP连接后发起http请求
- 服务器响应http请求
- 浏览器解析htm代码,并请求html代码中的资源
- 关闭TCP连接(四次挥手)
- 浏览器渲染页面
完整过程:
- 域名解析
- 根据IP建立TCP连接(三次握手)
- 建立TCP连接后发起http请求
- 服务器响应http请求
- 浏览器解析htm代码,并请求html代码中的资源(如js、css、图片等)
- 关闭TCP连接(四次挥手)
- 浏览器渲染页面
域名解析
-
浏览器搜索自己的DNS缓存(维护一张域名与IP地址的对应表,用chrome://net-internals/#dns清理) ,如果有直接返回,如果没有进行步骤二
-
操作系统查找自己的DNS缓存(维护一张域名与IP地址的对应表,),如果有直接返回给浏览器,如果没有进行步骤三
-
操作系统查找自己的本地host文件(Windows环境下,维护一张域名与IP地址的对应表,位置一般在 C:\Windows\System32\drivers\etc\hosts),如果有返回给浏览器,如果没有则进行步骤四
-
操作系统将域名发送至本地域名服务器(递归查询方式),本地域名服务器查询自己的DNS缓存,查找成功则返回结果,否则,(以下是迭代查询方式)
4.1 本地域名服务器 向根域名服务器(其虽然没有每个域名的具体信息,但存储了负责每个域,如com、net、org等的解析的顶级域名服务器的地址)发起请求,此处,根域名服务器返回com域的顶级域名服务器(比如com)的地址
4.2 本地域名服务器 向com域的顶级域名服务器发起请求,返回baidu.com二级域名服务器(权限域名服务器,用来保存该区中的所有主机域名到IP地址的映射)地址
4.3 本地域名服务器向baidu.com二级域名服务器发起请求,得到www.baidu.com的IP地址
-
本地域名服务器 将得到的IP地址返回给操作系统,同时自己也将IP地址缓存起来
-
操作系统将 IP 地址返回给浏览器,同时自己也将IP地址缓存起来
-
至此,浏览器已经得到了域名对应的IP地址
根据IP建立TCP连接(三次握手)
tobe
建立TCP连接后发起http请求
tobe
服务器响应http请求
tobe
浏览器解析htm代码,并请求html代码中的资源
tobe
关闭TCP连接(四次挥手)
tobe
浏览器渲染页面
tobe