网络——DNS解析(一)

完整流程

  1. 根据域名和 DNS 解析到服务器的IP地址 (DNS + CDN)
  2. 通过ARP协议获得IP地址对应的物理机器的MAC地址
  3. 浏览器对服务器发起 TCP 3 次握手
  4. 建立 TCP 连接后发起 HTTP 请求报文
  5. 服务器响应 HTTP 请求,将响应报文返回给浏览器
  6. 短连接情况下,请求结束则通过 TCP 四次挥手关闭连接,长连接在没有访问服务器的若干时间后,进行连接的关闭
  7. 浏览器得到响应信息中的 HTML 代码, 并请求 HTML 代码中的资源(如js、css、图片等)
  8. 浏览器对页面进行渲染并呈现给用户

DNS 解析过程

网络——一次HTTP请求的完整过程_2021-01-22-14-55-42.png

三种类型的 DNS 服务器,根 DNS 服务器,顶级域 DNS 服务器和权威 DNS 服务器。

  1. 首先浏览器会检查浏览器自身的DNS缓存中,是否有域名对应的DNS缓存(chrome缓存1分钟,大概有1000条缓存),没有的话进入第二步,否则解析完成
  2. 接下来去查看系统的hosts文件(C:\Windows\System32\drivers\etc)是否有域名对应的IP地址,如果找到则停止解析,否则进入第三步
  3. 浏览器发起DNS系统调用,向本地配置的首选DNS服务器发起域名解析请求(通过UDP协议,向DNS的53端口发起请求)
  4. 首先请求会在运营商的DNS服务器(本地服务器)上进行请求,如果找到对应的条目,且没有过期,则解析成功,否则进入第五步
  5. 运营商的DNS服务器,根据解析请求,迭代查询,首先找到根域名服务器的IP地址(这个DNS服务器内置13台根域DNS的IP地址),然后找到根域的DNS地址,发送请求
  6. 根域服务器收到请求后,根据域名,返回对应的顶级域的服务器ip地址,并返回给运营商DNS服务器
  7. 运营商DNS服务器接收到根域名服务器传回来的顶级域名服务器IP地址后,向顶级域名服务器发送请求
  8. 顶级域名服务器接收到请求后,返回该域名对应的权威域名服务器的ip地址,并返回给运行商DNS服务器。
  9. 运营商DNS服务器获得权威域名服务器的响应信息后,返回给请求的主机,DNS解析完成。

DNS主要是通过UDP通信,报文结构主要分为头部Header、查询部分Question、应答部分Answer/Authority/Addition。

文章目录
  1. 1. 完整流程
  2. 2. DNS 解析过程
|