Http_parser报文解析

http协议

1: 超文本传输协议;
2: 网站等大部分都使用的是http协议;
3: 客户端发出http协议请求数据包,服务器返回http协议响应数据包


请求/响应格式

1:http请求:
    <request-line>
    <headers>
    <blank line>
    [<request-body>]
说明:第一行必须是一个请求行(request-line),用来说明请求类型,要访问的资源以及所使用的HTTP版本.
紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息.之后是一个空行.
再后面可以添加任意的其他数据[称之为主体(body)].
2:HTTP响应格式:
<status-line>
<headers>
<blank line>
[<response-body>]

请求

客户端HTTP,请求

这里写图片描述


响应

HTTP响应:
这里写图片描述


http get请求

1: static char* http_get_req =
“GET /favicon.ico HTTP/1.1\r\n”
“Host: 0.0.0.0=5000\r\n”
“User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko/2008061015 Firefox/3.0\r\n”
“Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8\r\n”
“Accept-Language: en-us,en;q=0.5\r\n”
“Accept-Encoding: gzip,deflate\r\n”
“Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n”
“Keep-Alive: 300\r\n”
“Connection: keep-alive\r\n”
“\r\n”;

报文数据
这里写图片描述

这里写图片描述


http post请求

1:static char * http_post_req =
“POST /post_identity_body_world?q=search#hey HTTP/1.1\r\n”
“Accept: /\r\n”
“Transfer-Encoding: identity\r\n”
“Content-Length: 5\r\n”
“\r\n”
“World”;

这里写图片描述

http get 响应

1: static char* http_get_respones =
“HTTP/1.1 200 OK\r\n”
“Date: Sat, 31 Dec 2005 23:59:59 GMT\r\n”
“Content-Type: text/html;charset=ISO-8859-1\r\n”
“Content-Length: 122\r\n”
“\r\n”
“\r\n”
“\r\n”
“Wrox Homepage\r\n”
“\r\n”
“\r\n”
\r\n”
“\r\n”
“\r\n”;

这里写图片描述


解析报文

1: 编译http_parser库

2: 解析请求报文;

3: 解析响应报文;


code

猜你喜欢

转载自blog.csdn.net/qq_36482772/article/details/80174358