在浏览器中输入URL后,执行的全部过程。会用到哪些协议?(一次完整的HTTP请求过程)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hellodake/article/details/81974421

一次完整的HTTP请求过程:

1.首先进行域名解析,域名解析具体过程讲一下:

  • 浏览器搜索自己的DNS缓存,缓存中维护一张域名与IP地址的对应表;
  • 若没有,则搜索操作系统的DNS缓存;
  • 若没有,则操作系统将域名发送至本地域名服务器(递归查询方式),本地域名服务器查询自己的DNS缓存,查找成功则返回结果,否则,通过以下方式迭代查找:

本地域名服务器向根域名服务器发起请求,根域名服务器返回com域的顶级域名服务器的地址;

本地域名服务器向com域的顶级域名服务器发起请求,返回权限域名服务器地址;

本地域名服务器向权限域名服务器发起请求,得到IP地址;

  • 本地域名服务器将得到的IP地址返回给操作系统,同时自己将IP地址缓存起来;
  • 操作系统将IP地址返回给浏览器,同时自己也将IP地址缓存起来;
  • 至此,浏览器已经得到了域名对应的IP地址。

2.浏览器发起HTTP请求;

3.接下来到了传输层,选择传输协议,TCP或者UDP,TCP是可靠的传输控制协议,对HTTP请求进行封装,加入了端口号等信息;

4.然后到了网络层,通过IP协议将IP地址封装为IP数据报;然后此时会用到ARP协议,主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址,找到目的MAC地址;

5.接下来到了数据链路层,把网络层交下来的IP数据报添加首部和尾部,封装为MAC帧,现在根据目的mac开始建立TCP连接,三次握手,接收端在收到物理层上交的比特流后,根据首尾的标记,识别帧的开始和结束,将中间的数据部分上交给网络层,然后层层向上传递到应用层;

6.服务器响应请求并请求客户端要的资源,传回给客户端;

7.断开TCP连接,浏览器对页面进行渲染呈现给客户端。

posted @ 2019-09-02 15:13  xjyxp01  阅读(434)  评论(0编辑  收藏  举报