【网络】在浏览器地址栏输入一个url,按下回车之后会发生什么?用到哪些协议?用到哪些层?

在浏览器地址栏键入URL,按下回车之后会经历哪些流程?
1、DNS解析,得到IP地址;

DNS是什么?

DNS是一种组织成域层次结构的计算机和网络服务命名系统,用于TCP/IP网络,所提供的服务是用来将主机名和域名转换成IP地址的工作。

DNS解析过程:

主机查询DNS缓存,如果没有就会给本地DNS发送查询请求;
本地的DNS服务器向根域名服务器发送查询请求,根域名服务器返回该域名的一级域名服务器;
该本地服务器给该一级域名服务器发送查询请求,然后依次类推直到查询到该域名的IP地址;
2、解析出IP地址后,根据该IP地址和默认端口80,和服务器建立TCP连接;

3、浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送服务器;

4、服务器对浏览器请求作出响应,并把对应的html文本发送给浏览器;

5、释放TCP连接(四次挥手断开连接);

6、浏览器将该html文本解析并显示内容;

该过程中用到哪些协议?
域名解析时要用到DNS协议;DNS服务器是基于UDP的,因此会用到UDP协议;得到IP地址后,浏览器就要与服务器建立一个http连接,会用到HTTP协议;http生成一个GET请求报文,将该报文传给TCP层处理,所以会用到TCP协议;如果采用https还会使用https协议先对http数据进行加密;TCP层如果有需要先将HTTP数据包分片,分片依据路径MTU和MSS;TCP的数据包然后会发送给IP层,用到IP协议;IP层通过路由选择,发送到目的地址;当然在一个网段内的寻址是通过以太网协议实现(也可以是其他物理层协议,比如PPP,SLIP),以太网协议需要知道目的IP地址的物理地址,所以需要用到ARP协议。

用到哪些层?每层是干什么的?
1、DNS协议、HTTP协议、HTTPS协议属于应用层

应用层是体系结构中的最高层。应用层确定进程之间通信的性质以满足用户的需要。这里说到的进程就是指正在运行的程序。应用层不仅要提供应用进程所需要的信息交换和远地操作,而且还要作为互相作用的应用进程的用户代理,来完成一些为进行语义上有意义的信息交换所必须的功能。应用层直接为用户的应用进程提供服务。

2、TCP/UDP属于传输层

传输层的任务就是负责主机中两个进程之间的通信。因特网的传输层可使用两种不同的协议:即面向连接的传输控制协议TCP,和无连接的用户数据报协议UDP。面向连接的服务能够提供可靠的交付,它只是“尽最大努力交付”。这两种服务方式都很有用,各有其优缺点。在分组交换网内的各个交换节点机都没有传输层。

3、IP协议、ARP协议属于网络层

网络层负责为分组交换网上的不同主机提供通信。在发送数据时,网络层将传输层产生的报文段或用户数据报封装成分组或者包进行传送。在TCP/IP体系中,分组也叫做IP数据报,或者简称为数据报。网络层的另一个任务就是要选择合适的路由,使源主机传输层所传下来的分组能够交付到目的主机。

4、数据链路层

当发送数据时,数据链路层的任务是将在网络层交下来的IP数据报组装成帧,在两个相邻节点间的链路上传送以帧为单位的数据。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制以及流量控制等信息)。控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。控制信息还使接收端能够检测到所收到的帧中有没有差错。

5、物理层

物理层的任务就是透明的传送比特流。在物理层上所传输的数据的单位是比特。传递信息所利用的一些物理媒介,如双绞线、同轴电缆、光缆等,并不是在物理层之内而是在物理层的下面。因此也有人把物理媒体当做第0层。
————————————————
版权声明:本文为优快云博主「懒洋洋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/swag_wg/article/details/102214865

当用户在浏览器地址栏输入内容并按下回键时,浏览器会经历以下步骤来打开网页: 1. 解析URL浏览器会解析用户输入URL(统一资源定位符),URL包含了要访问的网页的地址和其他参数。 2. DNS解析:浏览器会向域名系统(DNS)服务器发送一个请求,以获取输入URL中所包含的网址的IP地址。DNS服务器将返回对应的IP地址,使得浏览器能够与服务器建立连接。 3. 建立连接:浏览器使用HTTP或HTTPS协议与服务器建立连接。对于HTTPS协议,还会进行SSL/TLS握手过程来建立安全连接。 4. 发送请求:浏览器会向服务器发送一个HTTP请求,其中包含了用户请求的网页和其他相关信息,如请求方法(GET、POST等)和请求头部(包含浏览器的信息、支持的数据格式等)。 5. 服务器处理请求:服务器接收到浏览器发送的请求后,会根据请求的内容进行处理。这可能包括读取数据库、执行动态代码等操作。 6. 响应生成:服务器处理完成后,会生成一个HTTP响应。响应中包含了网页的内容、状态码(表示请求成功或失败的数字代码)和其他相关信息。 7. 接收响应:浏览器接收到服务器发送的HTTP响应后,会开始解析响应。浏览器会根据响应头部的信息来判断如何处理响应内容。 8. 渲染页面:如果响应中的状态码表示成功(例如200),浏览器会开始渲染页面。它会解析HTML、CSS和JavaScript代码,构建DOM树和渲染树,并将网页内容显示在浏览器窗口中。 9. 下载资源:在渲染页面的过程中,浏览器可能会发现页面中引用了其他资源,如图像、样式表、脚本文件等。浏览器会发送请求来下载这些资源,并将其添加到页面中。 10. 执行脚本:如果页面包含了JavaScript代码,浏览器会执行这些脚本,以实现交互和动态效果。 11. 网页加载完成:当所有的资源都被下载并且页面完成渲染时,浏览器会触发页面加载完成的事件。 这是一个简要的描述,实际上,浏览器工作过程还涉及到缓存机制、安全策略、优化算法等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值