当前位置:文档之家› HTTP请求方式之POST请求

HTTP请求方式之POST请求

HTTP 请求方式之POST 请求
在HTTP 请求消息中,请求方式有GET 、POST 、HEAD 、OPTIONS 、DELETE 、TRACE 、PUT 和CONNECT 八种。

而在以后们最常用的有两种请求方式:POST 请求、GET 请求。

这两种请求方式所对应的请求协议内容略有不同,
在上一节的HTTP 请求协议中,我们已经了解了GET 请求方式的请求信息,下面我们来学习Post 请求。

1.POST 请求
我们在浏览器地址栏上直接输入网址访问资源,这种请求方式是GET 请求,超链接请求也属于GET 请求,下面我们要演示的是POST 请求:
(1)创建一个web 应用,名称为Example04,并在该应用中的WebRoot 目录下新建一个form.html 文件。

详情请见Post 请求案例详解。

点击此处
Example04.zip 下载Examplie04。

主要
代码如例1-1所示:
例1-1form.html
<form action="/Example04/index.jsp"method="post">
用户名:<input type="text"name="username"/></br>
密码:<input type="password"name="password"/></br>
<input type="submit"value="提交"/>
</form>(2)将Example04发布到Tomcat 中,启动Tomcat 服务器。

在浏览器端地址栏上输入http://localhost:8080/Example04/form.html ,并使用HttpWatch 进行抓包,如图1-1所示:
图1-1访问form.html
填写用户名:zhangsan
填写密码:123点击提交点击提交之前,先点击Clear 选项,清理一下
(3)如图1-1所示,在用户名文本框中输入:zhangsan,密码文本框中输入:123。

然后选中【Clear】选项,再点击【提交】按钮,结果如图1-2所示:
提交之后,访问index.jsp
图1-2运行结果
(4)如图1-2所示,我们通过HttpWatch成功的抓取到form表单提交之后的请求信息,具体内容如例1-2所示:
例1-2post方式请求信息
POST/Example04/index.jsp HTTP/1.1
Accept:image/jpeg,application/x-ms-application,image/gif, application/xaml+xml,image/pjpeg,application/x-ms-xbap, application/x-shockwave-flash,application/msword, application/vnd.ms-powerpoint,application/vnd.ms-excel,*/* Referer:http://localhost:8080/Example04/form.html
Accept-Language:en-US,zh-CN;q=0.5
User-Agent:Mozilla/4.0(compatible;MSIE8.0;Windows NT 6.1; Trident/4.0;qdesk 2.4.1265.203;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;InfoPath.3)
Content-Type:application/x-www-form-urlencoded
Accept-Encoding:gzip,deflate
Host:localhost:8080
Content-Length:30
Connection:Keep-Alive
Cache-Control:no-cache
username=zhangsan&password=123
(5)现在我们再抓取一段GET方式请求信息,在浏览器地址栏上输入:http://localhost:8080/Example04?username=zhangsan&password=123,如图1-3所示:
图1-3get请求
(6)图1-3所示中的请求信息,如例1-3所示:
例1-3get方式请求信息
GET/Example04?username=zhangsan&password=123HTTP/1.1
Accept:image/jpeg,application/x-ms-application,image/gif, application/xaml+xml,image/pjpeg,application/x-ms-xbap, application/x-shockwave-flash,application/msword, application/vnd.ms-powerpoint,application/vnd.ms-excel,*/* Accept-Language:en-US,zh-CN;q=0.5
User-Agent:Mozilla/4.0(compatible;MSIE8.0;Windows NT 6.1; Trident/4.0;qdesk 2.4.1265.203;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;InfoPath.3)
Accept-Encoding:gzip,deflate
Host:localhost:8080
Connection:Keep-Alive
Cookie:JSESSIONID=5386A9443729D7EB0B61E38A9C7CF52F
将例1-2post方式请求信息与例1-3get方式请求信息进行比较,有以下两点区别:
●请求首行区别:请求参数的位置不同
以上两种请求方式都是带参数的请求,POST请求首行是:POST/Example04/index.jsp HTTP/1.1,GET请求首行为:GET/Example04?username=zhangsan&password=123HTTP/1.1,其中GET请求首行中,”?”后面的是请求参数,多个请求参数之间用”&”连接。

可以看出,POST 请求的请求参数并不在请求首行中。

●GET请求没有请求体,POST请求有请求体
从例1-3中可以看出,GET请求没有请求体。

从例1-2可以看出,POST请求有请求体,而且请求体的内容是从form.html页面提交过来的参数。

这些参数的格式:参数名=参数值&参数名=参数值&…,get请求没有请求体,它的请求参数附加在请求首行的url后面。

相关主题