TinyWebserver 项目讲解

Posted by whaler404 on March 16, 2024

项目介绍

  • Linux C++开发的轻量Web服务器,主要涉及
    • 使用线程池+非阻塞socket+epoll+事件处理的并发模型
    • 使用状态机解析HTTP请求报文,支持Post和Get的解析
    • 访问服务器数据库实现web端用户注册、登录功能,可以请求视频和文件
    • 实现同步/异步日志系统,可以记录服务器运行状态
    • 通过了Webbench压力测试,可以实现上万的并发连接数据交换
  • 主流的webserver有apache、nginx,

linux网络编程核心技术

Linux 网络编程核心

  • Linux 下网络编程核心的包括系统编程和网络 IO 两个部分:
    • 进程间通信方式: 信号量、管道、共享内存、socket 等
    • 多线程编程:互斥锁、条件变量、读写锁、线程池等
    • 五大 IO 模型:同步、异步、阻塞、非阻塞、信号驱动
    • 高性能 IO 两种模式:Reactor 和 Proactor( 但是 Linux 下由于缺少异步 IO 支持,基本没有 ProactorIO
    • 复用机制:epoll、select、poll(破解 C10K 问题的利器)

Linux C++ 中的系统函数: