文章代码来源:高并发Web服务器
简单介绍
书接上文,这里是http处理业务请求的具体逻辑内容。
1 | bool HttpConn::process() { |
解析http请求的逻辑
下面简单分析,对http请求的解析的逻辑。
从http的请求报文的格式可看出,可以分为三个部分,请求首行、请求头部、请求数据 也叫请求体(body),http解析也以此划分阶段。当解析数据还有剩余,会依据当前状态解析相应的部分。如:ParseRequestLine_()
、ParseHeader_()
、ParseBody_
.
1 | bool HttpRequest::parse(Buffer& buff) { |
创建响应的逻辑
同样,当请求的资源存在,可以响应时,也依次此创建响应。
1 | void HttpResponse::MakeResponse(Buffer& buff) { |