在浏览器中输入一个网址后(DNS解析)

什么是DNS

  • DNS(Domain Name System)
  • DNS服务是和HTTP协议一样位于应用层的协议
  • 它提供域名到IP地址之间的解析服务

 

查询DNS,获取域名对应IP(DNS 解析)

  1. 浏览器输入 www.bilibili.com,敲回车
  2. 浏览器会先查找本地的 DNS 缓存,如果有对应的记录, 就可以直接拿到域名对应的 IP 地址,然后就可以直接访问对应的服务器
  3. 假设缓存中找不到,就会先在本地的 hosts 文件中查找相应的域名和 IP 地址是否存在
  4. 假设 hosts 文件中也找不到,那么浏览器就会把查询请求发送到本地电脑网络设置中的 DNS 服务器上,一般是自动设置好的,自动设置的 DNS 地址一般是管理 wifi 路由器的 IP 地址;当然也可以手动设置,比如常见的 Google DNS 服务器 8.8.8.8
  5. 假设如果本地DNS服务器也失效:
  • 如果未采用转发模式(迭代),本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后,会判断这个域名(如.com)是谁来授权管理,并返回一个负责该顶级域名服务器的IP,本地DNS服务器收到顶级域名服务器IP信息后,继续向该顶级域名服务器IP发送请求,该服务器如果无法解析,则会找到负责这个域名的下一级DNS服务器(如http://baidu.com)的IP给本地DNS服务器,循环往复直至查询到映射结束;
  • 如果采用转发模式(递归),则此DNS服务器就会把请求转发至上一级DNS服务器,如果上一级DNS服务器不能解析,则继续向上请求。

 

进行TCP连接

  • 浏览器终于得到了IP以后,向服务器发送TCP连接,TCP连接经过三次握手。

 

浏览器发送HTTP请求

 

服务器处理请求

  • 同上。

 

关闭TCP连接

  • 连接经过四次挥手

 

客户端解析HTTP响应报文,浏览器开始显示HTML

posted @ 2022-05-02 14:50  青山原  阅读(384)  评论(0编辑  收藏  举报