HTTP协议初步

来源:互联网 发布:网络扫描工具有哪些 编辑:程序博客网 时间:2024/05/16 09:21

1、
简介
HTTP(HyperText Transfer Protocol),中文名称为超文本传输协议,工作在OSI七层体系中的应用层,属于高层应用协议。
HTTP协议主要用在浏览器和Web服务器之间进行通信。
HTTP协议使用明文进行传输,如果需要加密传输,可以使用https(注:j2me暂时不支持)
HTTP协议在发送时有很多发送的方式,介绍如下
2、
HTTP协议版本
HTTP协议有3个版本,依次是0.91.01.1。当前最新版本是1.1,但是1.0受到普遍
支持。
3、
发送方法
HTTP协议在发送时可以根据传输数据的方式不同分为多种方法,其中HTTP0.9支持
getpost两种方法,HTTP1.0支持7种方法,HTTP1.1支持的方法更多。

常用的方法有getpost

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>