项目简介
本项目是基于Linux C/C++实现的轻量级多线程HTTP/HTTPS服务器。采用单Reactor多线程网络模式,以epoll的ET触发模式处理客户端连接与读写事件。支持HTTP/1.1和HTTPS请求,涵盖GET和POST方法,使用有限状态机解析请求报文。此外,项目还包含简单的异步日志系统、JSON解析器和内存型Key - Value数据库。
项目的主要特性和功能
- 多线程处理:主线程用epoll处理客户端事件,工作线程池处理具体请求。
- HTTP/HTTPS支持:支持HTTP/1.1和HTTPS请求,包括GET和POST方法。
- 请求解析:用有限状态机解析请求报文,支持正则表达式解析URL和请求内容。
- 超时断连:利用时间堆实现客户端请求的超时断连机制。
- 内存数据库:实现简单的Key - Value内存型数据库,支持数据持久化。
- 异步日志系统:实现简单的异步双缓冲区日志系统,支持多线程安全写入。
- JSON解析:实现轻量的JSON解析器,用于解析配置文件。
安装使用步骤
假设用户已经下载了本项目的源码文件,操作步骤如下:
1. 进入项目目录:
bash
cd MyHTTPServer
2. 编译项目:
bash
mkdir build
cd build
cmake ..
make
3. 配置文件:
确保项目根目录下有配置文件config.json
,配置文件中包含服务器、数据库和日志系统的相关参数。
4. 运行服务器:
bash
./MyHTTPServer
5. 测试服务器:
使用test/webbench.py
脚本进行基准测试,测试服务器的性能。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】