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.youkuaiyun.com/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>