前言
互联网的原始目的,就是为了传输文本(文本对话)。那我们使用浏览器发送请求后页面是如何呈现在我们面前的呢?
接下来由图片介绍下URL到呈现页面的过程。
一、文本对话–从请求到响应
我们在浏览器中输入一个 URL,回车之后便会在浏览器中观察到页面内容。实际上这个过程是:
(1)浏览器向网站所在的服务器发送了一个 Request(请求)
(2)网站服务器接收到这个Request之后进行处理和解析
(3)然后返回对应的一个Response(响应)给浏览器,Response里面就包含了页面的源代码等内容
(4)浏览器再对其进行解析便将网页呈现了出来。
这个文本对话的过程是建立在怎样的一个规则上面呢?简单说,这个通信的过程是基于TCP/IP通信协议族规范的,完成从客户端到服务器端等一系列信息交换的流程。
二、TCP/IP 协议族介绍
1、TCP/IP协议族是什么呢?
TCP/IP协议族的目的就是通过建立规则使计算机之间可以进行信息交换。
相互通信的双方就必须基于相同的方法,比如由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定,我们就把这种规则称为协议(protocol)。通常我们说的TCP/IP协议族是互联网相关的各类协议族的总称。
TCP/IP族
TCP/IP协议族由那么多的协议组成,那功能上如何划分的呢?
这里就说到TCP/IP重要的层次化划分,按层次可以分为4层:应用层、传输层、网络层和链路层。(层次化的好处在于每个层次内部的设计可以自由改动,并通过各层的接口关联起来,而如果只有一个协议统筹就需要对所有涉及到的部分都重新设计。)
应用层、传输层、网络层和链路层
2、TCP/IP各功能层的作用
(1) 应用层:决定了向用户提供应用服务时候的通信活动。应用层负责传送各种最终形态的数据,是直接与用户打交道的层,典型协议是HTTP、FTP等。
(2) 传输层:负责传送文本数据。传输层有两个性质不同的协议: TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Data Protocol,用户数据报协议)。
UDP TCP
(3) 网络层:负责分配地址和传送二进制数据,主要协议是IP协议;
(4) 链路层:负责建立电路连接,是整个网络的物理基础,典型的协议包括以太网、ADSL等。
3、TCP/IP 通信传输流
在TCP/IP各功能层之间数据是如何流动传输的呢?
通信传输流
(1)首先作为发送端的客户端在应用层(HTTP 协议)发出的
HTTP请求(如:想浏览www.baidu.com),并生成HTTP报文。
(2)为了传输方便,在传输层(TCP 协议)把从应用层处收到的数据(HTTP 请求报文)进行分割,并在
各个报文上打上标记序号及端口号后转发给网络层。
(3)在网络层(IP 协议),增加作为通信目的地的 MAC 地址后转发给链路层。
(4)给这些数据附加上以太网首部并进行发送处理,生成的以太网数据包将通过物理层传输给接收端。
(5)接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的 HTTP 请求。
在通信过程每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。