Bootstrap

【项目】cpp-httplib库的原理

简要:
cpp-httplib是一个c++封装的http库,使用这个库可以在windows平台下完成http客户端、http服务端的搭建。

在p2p点对点下载器的项目中,我们只需用到cpp-httplib中的 httplib.h这个头文件,所以我们在这里只讲一下httplib搭建tcp客户端与服务器的原理。

httplib.h头文件的处理流程:

1. 最简单的http客户端搭建的步骤
  1. 组织http协议格式的请求数据
  2. 搭建tcp客户端
  3. 发送组织好的http请求数据
  4. 等待服务端响应,接收响应数据
  5. 对响应数据的解析
2. 最简单的http服务端搭建的步骤
  1. 搭建tcp服务端
  2. 等待接收客户端发送的数据
  3. 按照http协议格式,对数据进行解析(格式按照: 请求方法 URL 协议版本\r\n 头部\r\n 正文)
  4. 根据请求的资源路径以及查询字符串以及正文,进行业务处理
  5. 组织http协议格式的响应,返回给客户端(协议版本 状态码 描述\r\n 头部)

httplib.h头文件的组成

httplib.h头文件的组成主要包含有以下四个类

类名
class Request 请求数据类
class Response 回复数据类
cass Server 服务端类
class Client 客户端类

发送请求类的组成

class Request
{
   
	std::string method;  // 请求方法
	std::string path; // 请求路径
	map<std::string, std::string> param;  // 查询字符串(查询字符串中)
	map<std::string, std::string> headers;// 键值对头部
	std::string body; //正文
};

回复数据类的组成

class Response
{
   
	int status
;