当前位置: 首页 > 科技观察

从页面输入网址,回车到显示内容,这中间到底经历了什么

时间:2023-03-15 18:47:40 科技观察

从在页面输入网址,回车到显示内容,中间发生了什么?URL,进入到显示内容的界面,中间发生了什么?别往下看,你能想到什么?以下是我能想到的流程。它可能不是很准确。如有错误,请指出。计算机网络大致可分为应用层、传输层、网络层、链路层和物理层。当我们在页面中输入网址然后回车显示内容的时候,我就依次讲完以上几层。详细过程应用层假设我们现在要访问谷歌网站,第一步是打开浏览器,在地址栏中输入谷歌的地址,当你回车时,浏览器知道你要访问谷歌,但是对于浏览器来说,这只是一个名字,但它不知道它在哪里。例如,你知道某个名人的名字,但你不知道他/她的确切地址在哪里,对吧?浏览器也是如此。更好的一点是访问该网站并不像您想结识名人那么困难。这时候浏览器通过DNS来查找你要访问的具体网站地址。当然,如果你想更准确的找到地址,你也可以使用HTTPDNS来查找。通过DNS或HTTPDNS,浏览器现在获取到特定的IP地址,然后开始打包您的请求。对于给出的例子,如果只是想访问,一般可以使用HTTP协议;如果某些请求涉及您的账户密码,您将使用HTTPS协议来保证您的数据安全。从传输层到这里,DNS、HTTP、HTTPS所在的层称为应用层。现在应用层已经搞定了,应用层会将上面的相关数据进行封装,通过Socket编程将应用层封装发送给传输层。如果使用HTTP或HTTPS协议发送数据包,传输层将使用TCP协议封装数据;如果使用DNS协议发送,则会使用UDP协议进行封装。封装完成后,浏览器会将数据包交给操作系统的网络层。网络层+链路层+物理层部分会涉及到网络层+链路层+物理层。目标IP地址。源IP地址为浏览器所在机器的IP地址。说白了,如果你用电脑浏览器发送访问请求,源IP地址就是你的电脑IP地址,目的IP地址就是你要访问的网站地址。记住,在应用层,我们已经根据DNS或者HTTPDNS得到了我们要访问的网站的具体IP地址。OK,既然此时操作系统已经知道了目标IP地址,那么它就会考虑我如何根据目标IP地址找到这台机器。首先,操作系统会检查IP地址是否在局域网内,如果在,则从目标IP地址可以看出。但是很明显,你要访问的google地址不在本地,是在一个遥不可及的地方。操作系统知道要访问的地址是remote,但不知道remote在哪里。所以它把这个包发给了网关(gateway),但是它不知道网关是哪台机器,所以没关系。没事的,反正大家都在一个地方,喊一声就好了~于是操作系统就喊:谁是我们的网关。网关会回答它,我在,我在这里。上面的吼声是ARP协议。通过ARP协议,可以知道网关的具体地址,也就是MAC地址。然后数据包进入网关。网关一般是路由器。如何到达某个IP地址被维护在所谓的“路由表”中。出关比较复杂,这里不再赘述。详情可以阅读这篇文章:弄清楚网关?你需要了解这些。出网关后,需要取出源IP地址和目的IP地址。因为只要出了关口,就是在外面战斗。如果没有源IP地址和目的IP地址,就不知道请求从哪里来,到哪里去。现在这个数据包经过重重关卡,终于找到了目标IP地址所在的服务器。这时候服务器会先发送一个接收请求,然后对数据包逐层解析。目标端口号包含在TCP标头中。通过这个端口号,我们可以找出是哪个程序进程在监听这个端口号,然后我们就找到了我们要访问的网页。但是我怎么知道我发过来的数据包丢了呢?所以这个时候,TCP层每隔一段时间就会发送一次。是时候接收请求了。当我们找到我们要访问的网页后,下一步就会像我们来的时候一样,然后原路返回。最后:没想到一个简单的打开界面涉及到这么多知识~当然你会发现输入网址回车后页面几乎马上就出来了,这就涉及到缓存了。深入聊一聊,本文很长,如果这篇文章引起了你的兴趣,可以继续探讨,更多欢迎留言讨论