本文摘自书籍《HTTP 权威指南》
此系列文章对应 github地址
Web服务器
Web 服务器实现了 HTTP 和相关的 TCP 连接处理。负责管理 Web 服务器提供的资源,以及对 Web 服务器的配置、控制及扩展方面的管理。Web 服务器逻辑实现了 HTTP 协议、管理着 Web 资源,并负责提供 Web 服务器的管理功能。Web 服务器逻辑和操作系统共同负责管理 TCP 连接。底层操作系统负责管理底层计算机系统的硬件细节,并提供了 TCP/IP 网络支持、负责装载 Web 资源的文件系统以及控制当前计算活动的进程管理功能。Web 服务器有各种不同的形式:
- 可以在标准的计算机系统上安装并运行通用的软件 Web 服务器。
- 如果不想那么麻烦地去安装软件,可以买一台 Web 服务器设备,通常会是一台安装在时髦机架上的计算机,里面的软件会预装并配置好。
- 随着微处理器奇迹般地出现,有些公司甚至可以在少量计算机芯片上实现嵌入式 Web 服务器,使其成为完美的(便携式)消费类设备管理控制台。
Web服务器基本任务
- 建立连接——接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭。
- 接收请求——从网络中读取一条 HTTP 请求报文。
- 处理请求——对请求报文进行解释,并采取行动。
- 访问资源——访问报文中指定的资源。
- 构建响应——创建带有正确首部的 HTTP 响应报文。
- 发送响应——将响应回送给客户端。
- 记录事务处理过程——将与已完成事务有关的内容记录在一个日志文件中。
建立连接
处理新连接
客户端请求一条到 Web 服务器的 TCP 连接时,Web 服务器会建立连接,判断连接的另一端是哪个客户端,从 TCP 连接中将 IP 地址解析出来。 一旦新连接建立起来并被接受