在写这篇博客的时候,我的这个TinyWebServer
项目已经完成了。这个项目从我开学2月份开学开始,一直前后看了很多遍。每多看一遍,都有新的感悟和体会。
从最开始在牛客上的那一个版本,后来嫌弃这样的代码C风格太强烈,于是就有了现在基于基于Modern C++的版本。经历了两个多月期间有一次为了删除某个文件夹的全部日志,本来准备输入rm -rf ./*
,结果少打了个.
,输成了rm -rf /*
,导致整个系统崩溃,项目也没上传到远程仓库,崩溃了一整个晚上。后来重新装机,又给写了一遍,现在已经养成了每天写的代码都会添加到Github。
我一直不知道这个项目能不能打,如果要准备接下来的保研的话,想必导师会更看重科研经历吧,尤其是CV方向的经历。从大三下学期,我养成了写博客的习惯,在做这个项目的这几个月中,中途认识了一位电科的计算机学长,和这位学长聊了很多,学长也向我推荐了他的导师,他告诉我他的导师是算法+后台方向,并且也鼓励我坚持把这个项目做好。当时开学的我听到这番话真的仿佛拨开云雾终见日一般,我突然觉得我现在走的方向是正确的,是没有错的。不要觉得这个项目有多好有多差,能把这个项目给做好,就是能力的一种体现。
如果你要写一个WebServer,入门的书籍当然最好是游双的《Linux高性能服务器编程》
了,当这本内容基本都掌握后,如果有能力还可以再去看一下陈硕大佬的《Linux多线程服务器编程》使用muduo C++网络库
,去阅读源码,自制一个属于自己的网络库,相信对你的coding能力是一个很大的提升。在这里我推荐一下一位校友大佬的博客:从零开始自制实现C++ High-Performance WebServer 全流程记录
同时非常感谢markparticle
提供的源码,我一直很想做一个Modern C++风格的WebServer,但是却无从下手。我记得C++11是有属于自己的线程库的啊,写起来也非常的舒服,但是为什么网上通篇都是PIXIS的WebServer呢,后面也是问了很多人,最后还是打算写一个ModernC++风格的WebServer。
从4月开始,我也决定以后坚持写博客,不仅是记录这一路学习的过程,也为了给后面的学弟学妹一条路,告诉他们,曾经有一位学长当年走过多少弯路,给他们一点建议和鼓励,让他们少走一些弯路。写博客多少会在意自己的阅读量和点赞收藏量,我相信我这一路的博客,虽然在现在看来,每一篇只有仅仅几十个的阅读量,是那么的微不足道,但在将来某一天,如果能深深地打动某一个人,那么我觉得我这一路写博客的意义就达到了。
~2023-05-02 16:30 正在度过史上最无聊的一个五一假期的时候,心中有感而发 笔者留
从零开始实现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服务器