1、 简介 HTTP(HyperText Transfer Protocol),中文名称为超文本传输协议,工作在 OSI七层体系中的应用层,属于高层应用协议。 HTTP协议主要用在浏览器和 Web服务器之间进行通信。 HTTP协议使用明文进行传输,如果需要加密传输,可以使用 https(注: j2me暂时不支持 )。 HTTP协议在发送时有很多发送的方式,介绍如下 2、 HTTP协议版本 HTTP协议有 3个版本,依次是 0.9、 1.0、 1.1。当前最新版本是 1.1,但是 1.0受到普遍 支持。 3、 发送方法 HTTP协议在发送时可以根据传输数据的方式不同分为多种方法,其中 HTTP0.9支持 get、 post两种方法, HTTP1.0支持 7种方法, HTTP1.1支持的方法更多。 常用的方法有 get和 post。 Get方法和 post方法的区别是传送数据时,数据所放置的位置不同。 Get方法把参数放置在协议内部的请求行中。而 post方法将提交的参数放置在实体数据部分中。 更加详细的信息可以参考: http://dev.csdn.net/article/10/10865.shtm 4、 协议格式 HTTP协议是使用明文进行传输,协议主要分为三个部分: a) 请求行 /响应行:该部分只有一行,包含三个部分:请求方法 请求资源 使用的 HTTP协议的版本。例如: get /index.html http/1.1 其中 get为请求方法, /index.html是请求的资源, http/1.1是指客户端支持的 HTTP协议的版本。 b) 头信息:头信息部分主要传输服务器或者客户端的一些设定信息,可以有任意多个,传输时使用“名称:值”的形式,例如: Accept-Language: zh-cn User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) 其中 HTTP协议里面规定了 40多个头信息名称的用途,你也可以根据需要,自己来进行定义。 头信息结束时需要一个空行和实体数据部分分开。 c) 实体数据:实体数据在请求时,如果以 post方式提交时存储参数,以 get方式请求时为空。在响应时,存储服务器端反馈的 HTML源代码的数据。
附加:
GET /cgi-bin/tech/method.cgi?GET=GET HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* Referer: http://localhost//other.html Accept-Language: zh-cn Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) Host: localhost:8080 Connection: Keep-Alive
这个请求是我们通过这个HTML代码发出的:
<form action="http://localhost:8080/cgi-bin/tech/method.cgi" method="GET"> <input type="text" size="10" value="GET" name="GET"> <input type=submit value="GET方式"> </form>
这个请求已经超出了我们研究的范围,我们只研究其中的第一行。其中,第一个"GET"说出了提交的方式,是以GET方式提交的;中间的就是提交 给服务器上哪个程序,前面一部分"/cgi-bin/tech/method.cgi"就是我们HTML的form中action的内容,而后面 的"GET=GET"就是HTML的form中,input的内容:我们发现IE已经把这个表单的内容转换成特定格式了。在Perl中,通 过$GET=$ENV{'QUERY_STRING'}获得以GET发送的数据。
我们再看一个以POST方式提交的表单的请求:
POST /cgi-bin/tech/method.cgi HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms- powerpoint, application/vnd.ms-excel, application/msword, */* Referer: http://localhost//other.html Accept-Language: zh-cn Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) Host: localhost:8080 Content-Length: 9 Connection: Keep-Alive
POST=POST
同样给出HTML:
<form action="http://localhost:8080/cgi-bin/tech/method.cgi" method="POST"> <input type="text" size="10" value="POST" name="POST"> <input type=submit value="POST方式"> </form>