网址输入到响应之旅

探索从浏览器输入网址请求到服务器响应返回网页的过程。

Web浏览器

当在浏览器输入一串网址(URL)如( Http://www.baidu.com ) 的时候,浏览器会按照一定的规则去分析这个网址的含义,然后根据含义生成请求信息,浏览器会将请求消息发送给web服务器。 浏览器不负责数据的传送,仅仅是委托系统操作中的网络控制软件将消息发送给服务器。数据的传送搬运机制
由协议栈和网卡负责。

协议栈、网卡

协议栈(网络控制软件)会将浏览器接收来的消息打包,然后加上目的地址等控制信息。接下来协议栈会将包(数据)交给网卡(负责以太网或无线网络通信的硬件),然后,网卡会将包转换为电信号并通过网线发送出去。接下来,包就进入到网络之中了。

集线器、交换机、路由器

由于接入互联网形式的不同,以家庭或者公司局域网场景为例,通过ADSL(非对称数字用户线路,一种数据传输方式)和光纤到户(FTTH)等宽带线路接入互联网。这种场景下,网卡发送的包会经过交换机等设备,到达接入互联网的路由器。路由器的后面就是互联网,网络运营商会负责将包送到目的地。

接入网、运营商网络

数据从用来接入互联网的路由器出发,进入了互联网的内部,互联网的入口线路称为接入网,一般有电话线、ISDN、ADSL、有线电视、光线、专线等通信线路来接入互联网。接入网连接到签约的网络运营商,并接入被成为接入点(Point of Presence, PoP)的设备。接入点的实体是一台专为运营商设计的路由器。网络包首先通过接入网被发送到接入点,然后再从这里被发送到全国甚至全世界。接入点的后面就是互联网的骨干部分了。
在骨干网中存在很多运营商和大量的路由器,这些路由器相互连接,组成一张巨大的网,而我们的网络包就在其中经过若干路由器的接力,最终被发送到目标Web服务器上。

防火墙、缓存服务器

通过骨干网之后,网络包最终到达了Web服务器所在的局域网中。接着,它会遇到防火墙,防火墙会对进入的包进行检查。大家可以把防火墙想象成门口的保安,他会检查所有进入的包,看看有没有危险的包混在里面。检查完之后,网络包接下来可能还会遇到缓存服务器。网页数据中有一部分是可以重复利用的,这些可以重复利用的数据就被保存在缓存服务器中。如果要访问的网页数据正好在缓存服务器中能够找到,那么就可以不用劳烦Web服务器,直接从缓存服务器读出数据。此外,在大型网站中,可能还会配备将消息分布到多台Web服务器上的负载均衡器,还有可能会使用通过分布在整个互联网中的缓存服务器来分发内容的服务。经过这些机制之后,网络包才会到达Web服务器。

web服务器

当网络包到达Web服务器后,数据会被解包并还原为原始的请求消息,然后交给Web服务器程序。和客户端一样,这个操作也是由操作系统中的协议栈(网络控制软件)来完成的。接下来,Web服务器程序分析请求消息的含义,并按照其中的指示将数据装入响应消息中,然后发回给客户端。响应消息回到客户端的过程和之前我们介绍的过程正好相反。
当响应到达客户端之后,浏览器会从中读取出网页的数据并在屏幕上显示出来,这就是我看看到的百度搜索网页。到这里,访问Web服务器的一系列操作就全部完成了,我们的探索之旅也到达了终点。

你可能感兴趣的:(网址输入到响应之旅)