「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战」
前言
这是我《网络是如何连接的》系列第一篇文章,文章从一个众所周知的问题开始,从浏览器上输入 URL 后到展示数据,中间的整个过程。
今天我们主要来聊一聊浏览器上输入 URL 并返回数据中间经历的过程,涉及到设备、组件等。
浏览器、服务器交互设计
首先我们来想一想,如果让你来实现浏览器与服务器的交互,你应该如何设计呢?
我们先来简单概括下浏览器和 Web 服务器的交互:
-
浏览器向 Web 服务器发送请求;
-
Web 服务器根据请求向浏览器发送响应;
除此之外,要实现应用程序的交互,我们还需要一个 能够在浏览器和 Web 服务器之间传递请求和响应的机制。主要关注一下几点:
-
确定正确的通信对象: 网络是由很多计算机等设备相互连接组成的,因此需要在通信的过程中确定正确的通信对象,并将请求和响应发送给他们;
-
数据准确性: 请求和响应在传递的过程中可能会丢失或损坏,因此也要考虑到这个问题;
即我们需要一种 能够将数字信息搬运到指定目的地的机制。这种机制是由操作系统中的网络控制软件(协议)、以及交换机、路由器等设备分工合作来实现的,它的基本思路是将数字信息分割成一个一个的小块,然后装入一些称为 包(Packet)的容器中来运送。
网络的传输可以类比为送信的过程:
-
包相当于新建或者包裹
-
交换机、路由器相当于邮局或快递公司的分拣处理区
-
包头中的信息相当于邮政编码,用于寻址
总结一下就是:负责搬运数字信息的机制,再加上浏览器和 Web 服务器这些网络应用程序,这两部分就组成了网络。
学习步骤
在接下来的文章中,我们也是按照整个通信流程来学习网络通信,即:
-
Web 浏览器:我们首先探索浏览器的工作方式。浏览器是如何解析 URL,如何委托协议栈包装数据,并把数据送出去。
-
协议栈、网卡:接下来我们探索数据搬运的机制。协议栈是如何打包数据,并且如何通过网卡将数据转为电信号传递出去。
-
集线器、交换机、路由器:接下来我们探索的是如何将数据从家庭局域网中传递到互联网中,这就涉及到交换机、路由器等工具,不同的工具接入互联网的方式也并不相同。
-
接入网、运营商:数据传入到互联网中,究竟是谁来提供服务帮助我们找到目标服务器呢?答案是运营商。数据从用来接入互联网的路由器出发,进入互联网内部。互联网的入口线路称为接入网。接入网连接到签约的网络运营商,并接入被称为接入点的设备。
-
防火墙、缓存服务器:数据经过骨干网,最终到达了 Web 服务器所在的局域网中。接着,它会遇到防火墙,防火墙会对进入的包进行检查。缓存服务器会对其中部分内容进行存储,以便下次请求相同内容快速返回数据。
-
Web 服务器:最后,数据到达 Web 服务机后,数据会被解包并还原为原始的请求消息,然后交给 Web 服务器程序。和客户端一样,这个操作也是由操作系统中的协议栈(网络控制软件)来完成的。最终返回给客户端(过程相反)。
结语
希望在接下来的学习过程中,大家都能有所收获!
参考文档
- 《网络是怎样连接的》—— 户根勤