在写这篇博客的时候,我的这个TinyWebServer
项目已经完成了。这个项目从我开学2月份开学开始,一直前后看了很多遍。每多看一遍,都有新的感悟和体会。
从最开始在牛客上的那一个版本,后来嫌弃这样的代码C风格太强烈,于是就有了现在基于基于Modern C++的版本。经历了两个多月期间有一次为了删除某个文件夹的全部日志,本来准备输入rm -rf ./*
,结果少打了个.
,输成了rm -rf /*
,导致整个系统崩溃,项目也没上传到远程仓库,崩溃了一整个晚上。后来重新装机,又给写了一遍,现在已经养成了每天写的代码都会添加到Github。
如果你要写一个WebServer,入门的书籍当然最好是游双的《Linux高性能服务器编程》
了,当这本内容基本都掌握后,如果有能力还可以再去看一下陈硕大佬的《Linux多线程服务器编程》使用muduo C++网络库
,去阅读源码,自制一个属于自己的网络库,相信对你的coding能力是一个很大的提升。在这里我推荐一下一位校友大佬的博客:从零开始自制实现C++ High-Performance WebServer 全流程记录
同时非常感谢markparticle学长
的源码,这个项目源码在这:WebServer。我一直很想做一个Modern C++风格的WebServer,但是却无从下手。我记得C++11是有属于自己的线程库的啊,写起来也非常的舒服,但是为什么网上通篇都是PIXIS的WebServer呢,后面也是问了很多人,最后还是打算写一个ModernC++风格的WebServer。
从4月开始,我也决定以后坚持写博客,不仅是记录这一路学习的过程,也为了给后面的学弟学妹一条路,告诉他们,曾经有一位学长当年走过多少弯路,给他们一点建议和鼓励,让他们少走一些弯路。写博客多少会在意自己的阅读量和点赞收藏量,我相信我这一路的博客,虽然在现在看来,每一篇只有仅仅几十个的阅读量,是那么的微不足道,但在将来某一天,如果能深深地打动某一个人,那么我觉得我这一路写博客的意义就达到了。
~2023-05-02 16:30 正在度过史上最无聊的一个五一假期的时候,心中有感而发 笔者留
最后,再次感谢markparticle学长
,此系列博客代码是我在学习此项目过程中看了源码后自己手敲实现一遍的,作为一个学习过程的记录。未来如果有时间了,会自己从零实现一个真正属于自己的网络库。为了防止误解,我在此再次说明一下。如有侵权,请私信我。
~2023-05-24 8:11
从零开始实现C++ TinyWebServer(一)---- 项目总述
从零开始实现C++ TinyWebServer(二)---- 勿在浮沙筑高台,项目地基需打稳
从零开始实现C++ TinyWebServer(三)---- 补偏救弊调试分析,日志系统来帮忙
从零开始实现C++ TinyWebServer(四)---- 拨开云雾见天日,一文讲透线程池与连接池Pool
从零开始实现C++ TinyWebServer(五)---- 大鹏扶摇直上九万里,终于迎来有限状态机
从零开始实现C++ TinyWebServer(六)---- 这或许是你见过的最容易理解的HTTP连接
从零开始实现C++ TinyWebServer(七)---- 进一步优化服务器,剑指定时器小根堆
从零开始实现C++ TinyWebServer(八)---- 千呼万唤始出来,封装Epoller搭建服务器
从零开始实现C++ TinyWebServer(九)---- 项目知识点总结
JehanRio's TinyWebServer
GitHub:A C++轻量级、高性能、高并发的Web服务器