探索浏览器的工作方式
-
在浏览器中输入网址后,浏览器会生成请求消息并委托操作系统中的网络控制软件将消息发送给服务器。
-
协议栈将从浏览器接收到的消息打包,然后加上目的地址等控制消息,将包交给网卡。
协议栈:网络控制软件,这个软件还有其他一些功能,例如当发生通信错误时重新发送包,或者调节数据发送的速率等
网卡:负责以太网或无线网络通信的硬件 -
网卡会将包转换为电信号并通过网线发送到网络中。
-
假设客户端计算机是连接到家庭或公司的局域网中,然后再通过 ADSL 和光纤到户(FTTH)等宽带线路接入互联网。 在这样的场景中,网卡发送的包会经过交换机等设备,到达用来接入互联网的路由器。网络运营商会负责将包送到目的地。
-
接下来,数据从用来接入互联网的路由器出发,进入了互联网的内部。网络包首先通过接入网被发送到接入点,然后再从这里被发送到全国甚至全世界。(接入点的后面就是互联网的骨干部分)
在骨干网中存在很多运营商和大量的路由器,这些路由器相互连接,组成一张巨大的网,而我们的网络包就在其中经过若干路由器的接力,最终被发送到目标 Web 服务器上。
-
通过骨干网之后,网络包最终到达了 Web 服务器所在的局域网中,防火墙会对进入的包进行检查,检查完之后,网络包接下来可能还会遇到缓存服务器。
可以重复利用的数据被保存在缓存服务器中。如果要访问的网页数据正好在缓存服务器中能够找到,那么就可以不用劳烦 Web 服务器,直接从缓存服务器读出数据。
-
当网络包到达 Web 服务器后,数据会被解包并还原为原始的请求消息,然后交给 Web 服务器程序。
-
接下来,Web 服务器程序分析请求消息的含义,并按照其中的指示将数据装入响应消息中,然后发回给客户端。(响应消息回到客户端的过程和之前的过程正好相反)
-
当响应到达客户端之后,浏览器会从中读取出网页的数据并在屏幕上显示出来。