代码开源:
https://github.com/PetterZhukov/webserver_HTTP
介绍:
webserver_HTTP
使用了线程池,通过epoll实现的Proactor版本的web服务器。参考了游双老师的《Linux高性能服务器编程》以及牛客网的《Linux高并发服务器开发》课程。在自己复现的基础上进行模块的整合并添加一些小更改。所有代码拥有完备的注释。
访问的资源在 同级目录"resources"文件夹中
作为一个有志于在后端方面前进的初学者,这大概是我目前完成的最大的一个项目,也是涉猎知识最多的,主要涉及了Linux开发,Linux网络编程,高性能服务器开发 这几个点。
抱着展示所学的同时也可以对知识进行巩固的目的,我决定分享一下我所了解的知识。
因为整个知识框架比较繁杂,为了便于切入,我选择只将项目会用到的知识进行介绍。
接下来我来简单介绍一下这个项目的关键知识点
首先,上图
如图所示,主要分为几点
1. 高效的事件处理模式之一,Proactor模式的基本概念
2. 线程池的构建
3. TCP网络通信(epoll)
4. HTTP报文结构
5. 对HTTP请求报文的解析
6. 生成HTTP响应报文