输入一个url后,会发生什么事?

编程入门 行业动态 更新时间:2024-10-27 18:31:10

输入一个url后,会发生<a href=https://www.elefans.com/category/jswz/34/1741923.html style=什么事?"/>

输入一个url后,会发生什么事?

        Internet上的每一个网页都具有一个唯一的名称标识,通常称之为URL(Uniform Resource Locator,统一资源定位器)。它是www的统一资源定位标志,简单地说URL就是web地址,俗称“网址”。

        所以当我们在浏览器上输入一个url后,会发生什么事呢?如果只是看表面,应该都会认为显示的是我们想请求的网页,但是如果从上往下看,在我们知道了网络中OSI分层后,这个网页究竟是如何请求来的?在底层发生了什么事呢?

         我们知道数据在网络中并不是简单的端到端传送,而是在每个主机中,都有七层的OSI,自上到下分别是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。而我们不关心表示层、会话层和物理层,所以在我们的角度来看,OSI只有四层。

        假设有一个人使用IE浏览器,在搜索框输入:www.csdn,并且登陆自己的账号密码

己端:

        应用层:由于浏览器默认使用的是http/https协议,所以由会话层自上向下交付数据,先是由应用层的http/https协议打上自己的报头,并且使用http的POST方法,将用户的账号密码通过正文部分进行提交,这样使得用户的信息更加私密,并且在用户端使用cookie将用户输入的账号密码,通过请求用户的方式来进行保存进服务端的session,并且使用一些列非对称+对称方案,通过服务端在CA证书机构的权威认证,对双方的密钥进行加密,最后加上自己的报头,例如正文长度,编码方式等。

        传输层(tcp为例):准备好数据后,由http/https协议将数据打进tcp协议的发送缓冲区,并且由tcp根据网速,双方接收情况,使用滑动窗口的概念来决定何时发送,发送多少,并且tcp针对自己的数据都带有编号,而且对端收到时也带有编号回应,这样就可以通过确认序号的方式得知双方都收发了哪些数据,最后加上自己的tcp报头,例如正文长度,tcp窗口大小,确认序号等。

        网络层:准备好数据后,将数据向下交付给网络层,由网络层使用ip协议,来执行最后的转发动作,而ip协议最重要的任务就是选择一跳一跳的路由,使用严格的路由算法将数据通过最合理、最短路径将数据发送至对端,而这些路径的选择算法又要考虑到网络问题,路径问题等,如果待发送数据过大,一般以1500字节为一个包,如果超过了,就要进行分片发送,一般并不建议ip分片,因为分片后,对端收到后就要涉及到合并,并且在几十亿主机参与的网络中,网络状态不稳定是常有的,所以为了不造成数据的丢失,尽量不分片,在ip最好一切准备好活动后,最后也是要加上自己ip报头,例如自己的ip版本,片偏移,源ip地址,目的ip地址等。

        数据链路层:数据在这一层其实就已经由虚拟的网络接近现实的网络了,在这一层主要是将ip准备好的报文加上自己主机的MAC地址,交由物理层进行路由选择。

        通过重重路由的长度跋涉,报文终于在对端的数据链路层找到了对应的主机,而由于发送数据是自上向下交付,到了对端就要自下向上交付。

对端:

        数据链路层:收到数据后,确认是自己的MAC地址,进行解包,将自己的MAC地址拆下,交给上层的ip协议进行下一步解包。

        网络层:ip收到报文后,继续解包,剩下的数据就是带有tcp协议的报文,并且继续向上交付。

        传输层:tcp收到报文后,继续解包,交由上层的应用层,由http/https处理最后的请求。

        应用层:收到请求后,http/https分析对端主机的请求,并且将请求的服务进行返回,返回的过程跟上边的过程一样。

        在对端收数据的过程中,并不是一味的收数据,因为tcp协议是全双工协议,其中有很多确认是需要双方收发的,比如确认序号,所以在任何两台主机进行通信时,手法动作都是在同一时间内双方都在做的。

 

更多推荐

输入一个url后,会发生什么事?

本文发布于:2023-11-15 18:19:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1604064.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:什么事   发生   url

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!