云计算百科
云计算领域专业知识百科平台

Linux 基础入门操作 第十二章 TINY Web 服务器

1 服务器基础架构

1.1 背景知识

Web 服务器使用 HTTP 协议与客户端(即浏览器)通信,而 HTTP 协议又基于 TCP/IP 协议。因此我们要做的工作就是利用 Linux 系统提供的 TCP 通信接口来实现 HTTP 协议。

而 Linux 为我们提供了哪些网络编程接口呢?没错,就是 socket(套接字),我们会在后面详细介绍该接口的使用方式。 另外我们应该清楚 Linux 的系统 I/O 和文件系统的关系。在 Linux 中,所有 I/O 设备都被看作一个个文件,I/O 设备的输入输出被认做读写文件。网络作为一种 I/O 设备,同样被看作文件,而且是一类特殊的文件,即套接字文件。

我们还要对网络通信协议 TCP/IP 有一个大致的了解,知道 IP 地址和端口的作用。

1.2 客户端和服务器编程模型

客户端-服务器编程模型是一个典型的进程间通信模型。客户端进程和服务器进程通常分处两个不同的主机,如下图所示,客户端发送请求给服务器,服务器从本地资源库中查找需要的资源,然后发送响应给客户端,最后客户端(通常是浏览器)处理这个响应,把结果显示在浏览器上。通信示意图如下图所示:

在这里插入图片描述 这个过程看起来很简单,但是我们需要深入具体的实现细节。我们知道,TCP 是基于连接的,需要先建立连接才能互相通信。在 Linux 中,socket 为我们提供了方便的解决方案。

每一对网络连接称为一个 socket 对,包括两个端点的 socket 地址,表示如下:

(cliaddr : cliport, servaddr : servport

其中,cliaddr 和 cliport 分别是客户端 IP 地址和客户端端口,servaddr 和 servport 分别是服务器 IP 地址和服务器端口。客户端-服务器配对过程如下图所示:

在这里插入图片描述 这对地址和端口唯一确定了连接的双方,在 TCP/IP 协议网络中就能轻松地找到对方。

1.3 HTTP 基础知识

HTTP 是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于 1990 年提出,经过几年的使用与发展,得到不断地完善和扩展。

HTTP 协议的主要特点可概括如下: 1.支持客户/服务器模式。

2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记。

4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

5.无状态:HTTP 协议是无

赞(0)
未经允许不得转载:网硕互联帮助中心 » Linux 基础入门操作 第十二章 TINY Web 服务器
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!