1. 说明
- 对Http请求的封装,这里不再说明Http请求相应的相关知识
- 一个HttpRequest类,可复制
- 这个Http服务器还缺很多东西,主要是为muduo的inspect监控程序提供服务,那个inspect就是对进程信息的一些监控,inspect就不做详细整理了
2. 变量
-
枚举类型
- Method,几种方法的枚举,muduo并没有实现全部方法
- Version,Http版本的枚举,有1.0和1.1
-
Method method_;
-
Version version_;
- 两个枚举类型
-
string path_;
- 请求路径
-
string query_;
- query是指请求的参数,一般是指URL中?后面的参数
-
Timestamp receiveTime_;
- 请求时间
-
std::map<string, string> headers_;
- 请求头的键值对,例如Content-Type:text
3. 函数
-
构造
- 初始化两个枚举类型,其他没做啥
-
set/get系列函数
- void setVersion(Version v)
- Version getVersion() const
- bool setMethod(const char* start, const char* end)
- Method method() const
- const char* methodString() const
- void setPath(const char* start, const char* end)
- const string& path() const
- void setQuery(const char* start, const char* end)
- const string& query() const
- void setReceiveTime(Timestamp t)
- Timestamp receiveTime() const
- 这几个set/get如名,代码也简单,就不多说了
-
void addHeader(const char* start, const char* colon, const char* end)
- start到colon是键,colon是冒号,colon到end是值,就是把键值对添加到headers_
-
string getHeader(const string& field) const
- 获得某一个键对应的值的字符串
-
const std::map<string, string>& headers() const
- 返回整个headers_
-
void swap(HttpRequest& that)
- 完全交换请求头内容