引言
作为一名应届毕业生,在正式工作前正好一个空档期,将秋招与春招的WebServer项目对源码去进行刨析,以此来提高自己的代码设计与编程能力。
介绍
此项目是基于Linux轻量级多线程的Web服务器,应用层实现了一个简单的HTTP服务器,支持静态消息的访问与动态消息的回显。
项目功能:
- 利用IO复用技术Epoll与线程池实现的多线程Reactor高并发模型;
- 利用正则表达式与有限状态机解析HTTP请求报文,实现静态资源的处理;
- 利用标准库容器封装的char,实现自动增长的缓冲区;
- 基于小根堆实现的定时器,关闭超时的非活动连接;
- 利用单例模式和阻塞队列实现异步的日志系统,记录服务器的运行状态;
项目成果:
使用C++实现的高性能WEB服务器,经过webbench压力测试在2核4G配置下可以实现上万QPS。
上述是对WebServer的介绍,之后的几章内容将围绕上述项目功能进行展开,以此对项目进行分解与刨析,也非常感谢@qinguoyi、@markparticle。
项目地址:c++ Linux轻量级WebServer,欢迎各位朋友前来点赞。
框架
后续
后续在讲解项目功能时会对所涉及到的技术做一个详细介绍,以此更快的理解项目功能的实现方式,同时在最后也会附上对于webserver项目的常见面试题,此后也希望与大家一起共勉。