1. 说明
- Http协议解析类
- 一个HttpContext类,可复制,使用了Buffer,HttpRequest类
2. 变量
-
枚举类型
- HttpRequestParseState,四种请求头的解析状态枚举:解析请求行,请求头,内容体,解析完毕
-
HttpRequestParseState state_;
- 解析状态
-
HttpRequest request_
- 请求对象,把缓冲区的内容解析到这里
3. 函数
1. 私有
- bool processRequestLine(const char* begin, const char* end);
- 解析请求头第一行,对request_请求对象进行设置,如果解析出错就返回false
2. 公有
-
构造
- 初始化为解析请求行状态
-
bool gotAll() const
- 判断是否解析完
-
void reset()
- 解析完一个请求后,清空状态和这个请求头,为下一次解析做准备
-
const HttpRequest& request() const
-
HttpRequest& request()
- 返回request_请求对象
-
bool parseRequest(Buffer* buf, Timestamp receiveTime);
- 先解析请求行,再解析请求头,解析请求内容没有实现,代码易理解