在看完Linux网络编程之后,突然想做一个有挑战性的项目,实现一个高性能的Web服务器。于是我萌生了一边自己学着写服务器,一边详细的写出一个Web服务器的整体流程。
本系列文章推荐的参考书有:《Linux高性能服务器编程(游双)》 《APUE》《CSAPP》
阅读本系列文章不需要全部弄懂这几本书,只需要有一个大概框架即可,参考书的意义永远是随时查阅和补充
什么是Web Server?
一个Web Server就是一个服务器软件(程序),或者是运行这个服务器软件的硬件(计算机)。其主要功能是通过HTTP协议与客户端(通常是浏览器(Browser))进行通信,来接收,存储,处理来自客户端的HTTP请求,并对其请求做出HTTP响应,返回给客户端其请求的内容(文件、网页等)或返回一个Error信息。
严格意义上Web服务器只负责处理HTTP协议,只能发送静态页面的内容。
简而言之,就是我们要做一个可以相应用户请求(request),然后响应响应的内容(html)给客户的浏览器(Web的用户代理)。浏览器显示请求的Web页面,并提供大量的导航与配置特性。Web浏览器害实现HTTP客户端,因此在Web上下文中,可以从进程意义上互换使用“浏览器”与“客户”两个词。
用户如何与Web Server通信
通常用户