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: 解析响应报文;