C++ Linux轻量级WebServer(一)前言介绍

4,300 阅读1分钟

引言

作为一名应届毕业生,在正式工作前正好一个空档期,将秋招与春招的WebServer项目对源码去进行刨析,以此来提高自己的代码设计与编程能力。

介绍

此项目是基于Linux轻量级多线程的Web服务器,应用层实现了一个简单的HTTP服务器,支持静态消息的访问与动态消息的回显。

项目功能:

  • 利用IO复用技术Epoll与线程池实现的多线程Reactor高并发模型;
  • 利用正则表达式与有限状态机解析HTTP请求报文,实现静态资源的处理;
  • 利用标准库容器封装的char,实现自动增长的缓冲区;
  • 基于小根堆实现的定时器,关闭超时的非活动连接;
  • 利用单例模式和阻塞队列实现异步的日志系统,记录服务器的运行状态;

项目成果:

使用C++实现的高性能WEB服务器,经过webbench压力测试在2核4G配置下可以实现上万QPS


上述是对WebServer的介绍,之后的几章内容将围绕上述项目功能进行展开,以此对项目进行分解与刨析,也非常感谢@qinguoyi@markparticle

项目地址:c++ Linux轻量级WebServer,欢迎各位朋友前来点赞。

框架

WebServer框架图.png

后续

后续在讲解项目功能时会对所涉及到的技术做一个详细介绍,以此更快的理解项目功能的实现方式,同时在最后也会附上对于webserver项目的常见面试题,此后也希望与大家一起共勉。