- 博客(6)
- 收藏
- 关注
原创 手撸HTTP是理解HTTP的最好方式(5)
创建于 2020-08-06,完成于 2020-08-07 在之前的课程(四)中我们讲了有关如何套用 socket 实现 bufReader,并在此基础上读取 http 请求和返回值。 今天的任务是 “[易]实现主程序逻辑,监听端口,接收请求”。 所有的代码都在 https://github.com/dashjay/http_demo/tree/5-main-work 中 Let’s do it 0x1 多线程编程 作者对多线程编程了解不是很多,基本上就是在此场景下够用而已。 multi_thread #i
2020-08-07 23:37:04
1210
原创 手撸HTTP是理解HTTP的最好方式(4)
在之前的介绍课程(三)中我们讲了一些和配置加载与log程序的工作。 今天的任务是 “[难]定义一个bufReader类,并且使用该bufReader从TCP流中解析HTTP请求和返回体”,这是唯一一个被我标识为难的东西,其实也不难,只是相对繁琐。 所有的代码都在 https://github.com/dashjay/http_demo/tree/master/4-bufreader 中 本节课的代码,全部在上一节课的基础上 Let’s do it 0x1 TCP基于流传输 TCP传输从不以包为单位,也就是说
2020-08-06 11:49:23
1548
原创 手撸HTTP是理解HTTP的最好方式(3)
在之前的介绍课程(二)中我们讲了有关 HTTP 头部,请求体和返回结构在 cpp中的定义,今天我们来说一些很不相关,但是也很重要的内容: 今天的任务是 “[易]引入cpptoml从文件读取配置,引入spdlog尝试打log,帮助调试”。 所有的代码都在 https://github.com/dashjay/http_demo/tree/3-cpptoml-spdlog 中 Let’s do it 0x1 为什么要载入配置文件 众所周知,编译类的程序,编译一次,可运行n次,在通过一些测试后,即可常年工作。但是
2020-08-03 23:53:26
949
原创 手撸HTTP是理解HTTP的最好方式(2)
在之前的 介绍课程(一) 中我们说有关Cmake和知识,并且选用了一个Socket库 今天的任务是 “[易]定义HTTP请求和返回体的结构,构建并输出HTTP请求和返回体到标准输出。”。 所有的代码都在 https://github.com/dashjay/http_demo/tree/2-http-request-response 中 Let’s do it 0x1 初识HTTP请求结构 这就是一个简单的HTTP请求,我习惯把他分为三个部分:请求行(第一行),请求头(n行),请求体(之前有一个空行) --
2020-08-03 09:09:23
653
原创 手撸HTTP是理解HTTP的最好方式(1)
在之前的 介绍课程(零) 中我们说了要用六节课来实现一个HTTP, 今天的任务是 “[易]简单的Cmake的教程,选用一个Socket库并实现一个echo”。 所有的代码都在 https://github.com/dashjay/http_demo/tree/1-cmake-socket-echo 中 Let’s do it 0x1 编写一个HelloWorld并尝试使用Cmake编译它 #include<iostream> int main(){ std::cout <<
2020-08-03 09:08:08
822
原创 手撸HTTP是理解HTTP的最好方式(0)
2020年7月,笔者经过学习了cpp后打算入坑尝试手动实现 HTTP 服务器,过程中遇到很多问题,本文记录了笔者留下的一些记录,提供参考。 下面的叙述中含有一些脚注,为了不影响已经非常熟悉的同学的阅读,我把一些说明放到了脚注里,方便阅读。 Repo我开在这里,欢迎大家点个Star或者Fork操作。https://github.com/dashjay/http_demo.git 本教程1,使用6节课程/文章,尝试使用最简单的CPP知识实现一个高性能,简单的的HTTP Server。 [易]简单的Cmak
2020-08-03 09:07:05
302
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人