Http请求的构成

一、http请求的格式:

<request line>       //request type,http version, resource requested

<headers>              //additional infomation server site used

<blank line>            //

<request body>      //add any info here

HTTP定义了与服务器交互的方法,get 和 post。(还有put、delete)用于编码和传递变量名/变量值对,并使用相关的语义

get,以urlencoding编码,以查询字符串的方式传递参数。 server site:Request.QueryString[], length limited 1K,  security issue

post,也以url编码,但参数放在http请求内部、 server site: Request.Form[], no length limited,  no issue about security

二、Get请求的实例 

GET /cgi-bin/tech/method.cgi?txtGET=TestGetMethod HTTP/1.1     //request line
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                               //headers end

发出请求的html代码:

<form action="http://localhost:8080/cgi-bin/tech/method.cgi" method="GET"> //method为get时,浏览器会忽略url?后面的内容
<input type="text" size="10" value="TestGetMethod" name="txtGET">
<input type=submit value="GET方式">
</form>

 浏览器会自动将各表单字段附加在request line中的url后面。客户端的浏览器会缓存他。

三、Post请求的实例

POST /cgi-bin/tech/method.cgi HTTP/1.1                           //request line
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-             //headers begin
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: 22
Connection: Keep-Alive                                                            //headers end

txtPOST=TestPOSTMethod                                         //body line

发送请求的代码

<form action="http://localhost:8080/cgi-bin/tech/method.cgi" method="POST">
<input type="text" size="10" value="TestPOSTMethod" name="txtPOST">
<input type=submit value="POST方式">
</form>

浏览器会把各表单元素及数据作为http body内容发送给后台。

常见的还有post/get 混发。其实,method=“POST”,只是url后面加了"?parameterName=parameterValue"

posted @ 2012-08-31 22:37  zzq417  阅读(301)  评论(0编辑  收藏  举报