文章目录
简要:
cpp-httplib是一个c++封装的http库,使用这个库可以在windows平台下完成http客户端、http服务端的搭建。
在p2p点对点下载器的项目中,我们只需用到cpp-httplib中的 httplib.h这个头文件,所以我们在这里只讲一下httplib搭建tcp客户端与服务器的原理。
httplib.h头文件的处理流程:
1. 最简单的http客户端搭建的步骤
- 组织http协议格式的请求数据
- 搭建tcp客户端
- 发送组织好的http请求数据
- 等待服务端响应,接收响应数据
- 对响应数据的解析
2. 最简单的http服务端搭建的步骤
- 搭建tcp服务端
- 等待接收客户端发送的数据
- 按照http协议格式,对数据进行解析(格式按照: 请求方法 URL 协议版本\r\n 头部\r\n 正文)
- 根据请求的资源路径以及查询字符串以及正文,进行业务处理
- 组织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