HTTP——一次完整的请求过程(详细)

概述

当我们点击一个网址后,它能够呈现在我们的面前,在这个过程中,究竟发生了什么。

整体流程如下:

  1. DNS查询
  2. 三次握手
  3. TLS/SSL握手
  4. HTTP请求
  5. 四次挥手断开连接

详细过程

1. DNS查询

在这里插入图片描述
浏览器会使用DNS协议返回域名所对应的的IP地址。

DNS是一个应用层协议,并且他选择的运输层协议是UDP。

在DNS服务器上,域名和和他所对应的IP地址存储为一条记录。

所有的记录都不可能只存储在一台服务器上,无论多么强大的服务器都扛不住全球上亿次的并发量。

大致来说,有三种DNS服务器,跟服务器,顶级域DNS服务器和权威DNS服务器

顶级域DNS服务器主要负责诸如com、org、net等顶级域名。

跟DNS服务器存储了所有顶级域DNS服务器的IP地址,也就是说可以通过根服务器找到顶级域服务器。

然后可以选择一个顶级服务器,请求该顶级域服务器,顶级服务器拿到域名后应当做出判断并给出负责当前域的权威服务器地址。以百度为例的话,顶级域服务器将返回所有负责 baidu 这个域的权威服务器地址。

选择一个权威服务器地址,向他继续查询相应域名对应的IP地址。最终权威服务器会返回具体的IP地址。

实际上DNS是有缓存功能的,首先会从现有的缓存中找。

在这里插入图片描述

上图是一个请求案例(假设请求www.xxxx.com):

  1. 主机向本地DNS发送查询报文,入如果本地服务器缓存中有,将直接返回结果。
  2. 本地服务器返现缓存中没有,于是从内置的内部根服务器列表中选择一个发送查询报文
  3. 根域名解析一下这个后缀名,告诉本地服务器负责.com的所有顶级服务器列表
  4. 本地服务器选择一个顶级域服务器继续查询,.com顶级服务器拿到域名后继续解析,返回负责.xx域的所有权威服务器列表。
  5. 本地服务区从返回的权威服务器选择一个再次发送报文,最终会从某一个服务器上得到具体的IP地址
  6. 返回主机结果

例如查询www.linux178.com这个域名的IP
运营商的DNS服务器首先查找

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值