Web服务器做了什么以及实现一个Web服务器的难度

2022-10-28 16:34:15 浏览数 (1)

Web服务器会做些什么?

(1) 建立连接——接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭。 (2) 接收请求——从网络中读取一条 HTTP 请求报文。 (3) 处理请求——对请求报文进行解释,并采取行动。 (4) 访问资源——访问报文中指定的资源。 (5) 构建响应——创建带有正确首部的 HTTP 响应报文。 (6) 发送响应——将响应回送给客户端。 (7) 记录事务处理过程——将与已完成事务有关的内容记录在一个日志文件中。 上述的步骤如下所示:

实现一个真实的Web服务器不是一件简单的事情

首先,建立连接不是一件看起来很简单的事情。一个高性能的Web服务器能够支持上万条连接。通过这些连接,可以快速的接受客户端的请求以及返回服务器的响应。随着时代的发展,Apache服务器不再是高性能的代名词,现在的主流都变成了Nginx服务器。Nginx采用了多进程 异步非阻塞IO的方式来支持高性能。其次,是处理请求,也就是识别HTTP报文。由于HTTP是一个文本协议,看起来挺简单的,实际上HTTP协议是非常复杂的。需要服务器能够准确的解析HTTP报文。最后,Web服务器需要连接到复杂的后端应用程序上,Web 服务器要能够分辨出资源什么时候是动态的,动态内容生成程序位于何处,以及如何运行那个程序。Nginx这样的Web服务器的核心代码已经超过了10W行。因此,实现一个真正可用的Web服务器不是那么简单的一件事情。

参考资料

  1. 《HTTP权威指南》
  2. https://www.jianshu.com/p/c1c62e1af266

0 人点赞