浏览器中输入 url 后,发生了什么

今天我们详细分析一下,浏览器中输入 url 后,到底发生了什么?

一、进行域名解析(获取IP地址)
域名解析过程:
  1、浏览器搜索自己的DNS缓存,缓存中维护了一张域名和IP地址的对应表

  2、若没有则搜索操作系统的DNS缓存

  3、若没有则操作系统将域名发送到本地域名服务器,本地域名服务器在自己的DNS缓存查找(递归查询)

  4、若没有则通过以下方式查找(递归查询/迭代查询)

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

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

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

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

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

  7、浏览器得到IP地址

此后进入正式七层网络模型调用:


二、应用层-浏览器发送HTTP请求
作为发送端的客户端在应用层(HTTP协议)发送了一个想要做某件事的HTTP请求(比如请求某个接口)

三、传输层-TCP或者UDP封装数据(HTTP请求报文)
为了传输方便,传输层选择协议(TCP协议或者UDP协议)对从应用层收到的数据(HTTP请求报文)进行封装(对收到的数据进行分割,并在各个报文上打上标记序号及端口号)后转发给网络层

四、网络层-IP协议封装IP地址,获取目的MAC(media access control address)地址
通过IP协议将IP地址封装为IP数据报,此时会使用ARP协议(ARP是一种用以解析地址的协议,根据通信方的IP就可以反查对应的MAC地址)主机发送信息时会将包含目标IP地址信息ARP请求广播到网络上所有的主机,并接受返回消息,以此确定目标的物理地址,找到目的的MAC地址

五、链路层-(又名数据链路层、网络接口层)建立TCP连接
 把网络层交下来的IP数据添加首部和尾部,封装为MAC帧,根据目的MAC地址建立TCP连接(三次握手)

具体作用:

 

不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。

六:tcp连接,三次握手 

在域名解析之后,浏览器向服务器发起了http请求,tcp连接,三次握手建立tcp连接。TCP协议是面向连接的,所以在传输数据前必须建立连接

七:服务器收到请求

服务器收到浏览器发送的请求信息,返回一个响应头和一个响应体。整个过程结束之后,浏览器关闭TCP连接。

到此,该问题分析完毕。

这个问题曾经是一个经典的面试题,回答的越详细越好!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寅灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值