Jaccorot 日事日毕日清日高

在浏览器中输入URL后,执行的全部过程

2017-08-22

完整过程:

  • 域名解析
  • 根据IP建立TCP连接(三次握手)
  • 建立TCP连接后发起http请求
  • 服务器响应http请求
  • 浏览器解析htm代码,并请求html代码中的资源(如js、css、图片等)
  • 关闭TCP连接(四次挥手)
  • 浏览器渲染页面

域名解析

  1. 浏览器搜索自己的DNS缓存(维护一张域名与IP地址的对应表,用chrome://net-internals/#dns清理) ,如果有直接返回,如果没有进行步骤二

  2. 操作系统查找自己的DNS缓存(维护一张域名与IP地址的对应表,),如果有直接返回给浏览器,如果没有进行步骤三

  3. 操作系统查找自己的本地host文件(Windows环境下,维护一张域名与IP地址的对应表,位置一般在 C:\Windows\System32\drivers\etc\hosts),如果有返回给浏览器,如果没有则进行步骤四

  4. 操作系统将域名发送至本地域名服务器(递归查询方式),本地域名服务器查询自己的DNS缓存,查找成功则返回结果,否则,(以下是迭代查询方式)

    4.1 本地域名服务器 向根域名服务器(其虽然没有每个域名的具体信息,但存储了负责每个域,如com、net、org等的解析的顶级域名服务器的地址)发起请求,此处,根域名服务器返回com域的顶级域名服务器(比如com)的地址

    4.2 本地域名服务器 向com域的顶级域名服务器发起请求,返回baidu.com二级域名服务器(权限域名服务器,用来保存该区中的所有主机域名到IP地址的映射)地址

    4.3 本地域名服务器向baidu.com二级域名服务器发起请求,得到www.baidu.com的IP地址

  5. 本地域名服务器 将得到的IP地址返回给操作系统,同时自己也将IP地址缓存起来

  6. 操作系统将 IP 地址返回给浏览器,同时自己也将IP地址缓存起来

  7. 至此,浏览器已经得到了域名对应的IP地址

根据IP建立TCP连接(三次握手)

tobe

建立TCP连接后发起http请求

tobe

服务器响应http请求

tobe

浏览器解析htm代码,并请求html代码中的资源

tobe

关闭TCP连接(四次挥手)

tobe

浏览器渲染页面

tobe


Content