六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 116|回复: 0

http协议:request 和 response包组成

[复制链接]

升级  58%

7

主题

7

主题

7

主题

童生

Rank: 1

积分
29
 楼主| 发表于 2013-2-7 20:15:44 | 显示全部楼层 |阅读模式
Request = Request-Line;
*((general-header|request-header|entity-header)CRLF);
CRLF
[message-body];
解析:(正则表达式语法结构)
1、request请求包的起始为请求行(Request-Line)
2、接着可以出现0个或者多个的general-header,request-header,entity-header。
顺序无关,但一般都按照以上顺序组成。
3、http的header都是键值对,以CRLF(回车换行)结束
4、三个header的区域以一个空行即CRLF结束
5、接着就是可选的message-body了

example:
GET /index.html HTTP/1.1
Accept:*?*
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Host:192.168.0.119
Connection: Keep-Alive


Response = Status-Line;
*((general-header|response-header|entity-header)CRLF);
     CRLF
[message-body];
解析:同上
以上就是request和response的组成结构了,下面解析其各个元素,
general-header = Cache-Control;|Connection;|Date;|Pragma;|Triler;|Transfe-Encoding;|Upgrade;|Via;|Warning;entity-header =    Allow;    |Content-Encoding;    |Content-Language;    |Content-Lenght;    |Content-Location;    |Content-MD5;    |Content-Range;    |Content-Type;    |Expires;    |Last_Modified;    |extension-header;request-header = Accept|Accept-Charset|Accept-Encoding;|Accept-Language;|Authorization;|Expect;|From;|Host;|If-Match;|If-Modified-Since;    ...    |User-Agent;Request-Line = Method SP Request-URI SP HTTP-Version CRLFresponse-header = Accept-Ranges;|Age;|ETag;|Location;|Roxy-Authenticate;|Retry-After;|Server;|Vary;|WWW\Authenticate;Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表