高性能Web服务器项目
项目学习
关于web服务器项目的学习,如果只是复现一遍代码性价比太低,如果开源项目是工作需要,或者是在其运行基础上进行修改,那么其对代码整体进行浏览是必不可少的。但若是只是为了学习这个项目的的架构和思想,那么从整体入手,细究某一功能,再瞄准感兴趣的代码块就可以。
对于本项目,最主要的学习内容是为了学习web服务器相关的知识,不需要全部了解,但大部分代码都需要理清脉络,下面学习的脉络如下所式:
- 代码架构,每一个目录负责什么模块(这个部分可以结合开源项目文档,可以加快对项目的理解速度)
- 编译运行,看看有什么功能;
- 挑某一个功能,细究器代码实现,比如就先挑“用户登录注册”功能进行研究,在考虑其他的功能;
- 添加功能,如何在现有的框架下增加一个功能?比如上传文件、上传博客等等?添加留言板?
代码架构
使用VScode打开项目,该项目的代码框架如下:
.
├── build.sh
├── CGImysql //CGI校验程序,负责用户数据与数据库数据对比
├── config.cpp //
├── config.h
├── http //实现HTTP 协议连接,销毁等
├── LICENSE //主函数,编译文件等
├── lock //封装互斥锁,信号量等
├── log //日志系统的实现
├── main.cpp
├── makefile
├── README.mds
├── root //静态网页数据、图片、视频等
├── test_presure //压力测试webbench等
├── threadpool //线程池实现代码
├── timer //定时器实现代码
├── webserver.cpp
└── webserver.h