http请求报文阐述:
http请求由三部分组成,分别是:请求行、消息报头、请求正文
但由于消息报头和请求正文之间有一个"CRLF",也成为空行, 所以我自己定义为四部分
即:
请求行
消息报头
CRLF
正文
请求行阐述:
请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:
Method Request-URI HTTP-Version CRLF
1) Method表示请求方法;
2) Request-URI是一个统一资源标识符;
3) HTTP-Version表示请求的HTTP协议版本;
4)CRLF表示回车和换行(与消息头和正文之间的CRLF不一样,不作为请求格式的一部分)
(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)
Method(请求方法——所有方法全为大写) 有多种,各个方法的解释如下:
GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
最常用的是GET和POST方法,到现在我还没有用过其他方法的请求呢!
应用举例:
GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源
eg: GET /form.html HTTP/1.1 (CRLF) POST方法:要求被请求服务器接受附在请求后面的数据,常用于提交表单。
eg:POST /reg.jsp HTTP/ (CRLF)
Accept:image/gif,image/x-xbit,... (CRLF)
… ...
HOST:www.guet.edu.cn (CRLF)
Content-Length:22 (CRLF)
Connection:Keep-Alive (CRLF)
Cache-Control:no-cache (CRLF)
(CRLF) //该CRLF表示消息报头已经结束,在此之前为消息报头
user=lidonglong&pwd=1234 //此行以下为提交的数据
这是一个较为完整的POST请求,第一行是请求行;下面的到 "(CRLF)" 之前是消息报头;当然"(CRLF)"就为空行了!
请求报头阐述:
详见博文:http://blog.csdn.net/lidonglong121/article/details/7718663
请求正文:
请求正文包含的就是请求条件, 如:key=value&key=value……
其他的请求方法就先不说了,一般也很难用到,知道有这么些个请求方法和他们都是请求什么的就可以了,具体的格式到用的时候再查吧!