# MyWebServer
自己实现的C++轻量级Web服务器,基于C++ 11
# 开发部署环境
操作系统: Ubuntu 16.04
编译器: g++ 5.4
版本控制: git
自动化构建: cmake
集成开发工具: CLion
编辑器: Vim
压测工具:WebBench
# 核心功能及技术
状态机解析HTTP请求,目前支持 HTTP GET、HEAD方法
添加定时器支持HTTP长连接,定时回调handler处理超时连接
使用 priority queue 实现的最小堆结构管理定时器,使用标记删除,以支持惰性删除,提高性能
使用epoll + 非阻塞IO + 边缘触发(ET) 实现高并发处理请求,使用Reactor编程模型
epoll使用EPOLLONESHOT保证一个socket连接在任意时刻都只被一个线程处理
使用线程池提高并发度,并降低频繁创建线程的开销
同步互斥的介绍
使用RAII手法封装互斥器(pthrea_mutex_t)、 条件变量(pthread_cond_t)等线程同步互斥机制,使用RAII管理文件描述符等资源
使用shared_ptr、weak_ptr管理指针,防止内存泄漏
# 下一步开发计划
添加异步日志系统,记录服务器运行状态
增加json配置文件,支持类似nginx的多网站配置
提供CGI支持
类似nginx的反向代理和负载均衡
必要时增加可复用内存池。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
自己实现的C++轻量级Web服务器,基于C++ 11.zip (21个子文件)
资料总结
计算机网络教程:自顶向下方法.pdf 31.31MB
version_0.1
.DS_Store 6KB
include
httpparse.h 2KB
.vscode
c_cpp_properties.json 368B
settings.json 912B
launch.json 607B
httpresponse.h 2KB
server.h 831B
ssocket.h 734B
utils.h 249B
src
socket.cpp 2KB
main.cpp 3KB
base
noncopyable.h 298B
utils.cpp 531B
server.cpp 5KB
httpparse.cpp 7KB
httpresponse.cpp 1KB
test
test_utils.cpp 779B
test.cpp 825B
README.md 1KB
Linux高性能服务器编程.pdf 32.89MB
共 21 条
- 1
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功