教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Java培訓(xùn)之Http請求方式之post請求

更新時間:2016年06月22日11時27分 來源:傳智播客Java培訓(xùn)學(xué)院 瀏覽次數(shù):

在HTTP請求消息中,請求方式有GET、POST、HEAD、OPTIONS、DELETE、TRACE、PUT和CONNECT八種。而在以后們最常用的有兩種請求方式:POST請求、GET請求。這兩種請求方式所對應(yīng)的請求協(xié)議內(nèi)容略有不同,在上一節(jié)的HTTP請求協(xié)議中,我們已經(jīng)了解了GET請求方式的請求信息,下面我們來學(xué)習(xí)Post請求。

1.POST請求

我們在瀏覽器地址欄上直接輸入網(wǎng)址訪問資源,這種請求方式是GET請求,超鏈接請求也屬于GET請求,下面我們要演示的是POST請求:
  1. 創(chuàng)建一個web應(yīng)用,名稱為Example04,并在該應(yīng)用中的WebRoot目錄下新建一個form.html文件。詳情請見Post請求案例詳解。點(diǎn)擊此處 下載Examplie04。主要代碼如例1-1所示:
例1-1 form.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>
  1. 將Example04發(fā)布到Tomcat中,啟動Tomcat服務(wù)器。在瀏覽器端地址欄上輸入http://localhost:8080/Example04/form.html,并使用HttpWatch進(jìn)行抓包,如圖1-1所示:
圖1-1 訪問form.html
  1. 如圖1-1所示,在用戶名文本框中輸入:zhangsan,密碼文本框中輸入:123。然后選中【Clear】選項(xiàng),再點(diǎn)擊【提交】按鈕,結(jié)果如圖1-2所示:
圖1-2 運(yùn)行結(jié)果
(4)如圖1-2所示,我們通過HttpWatch成功的抓取到form表單提交之后的請求信息,具體內(nèi)容如例1-2所示:
例1-2 post方式請求信息
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; MSIE 8.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)現(xiàn)在我們再抓取一段GET方式請求信息,在瀏覽器地址欄上輸入:http://localhost:8080/Example04?username=zhangsan&password=123,如圖1-3所示:
圖1-3 get請求
(6)圖1-3所示中的請求信息,如例1-3所示:
例1-3 get方式請求信息
GET /Example04?username=zhangsan&password=123 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, */*
Accept-Language: en-US,zh-CN;q=0.5
User-Agent: Mozilla/4.0 (compatible; MSIE 8.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-2 post方式請求信息與例1-3 get方式請求信息進(jìn)行比較,有以下兩點(diǎn)區(qū)別:
  • 請求首行區(qū)別:請求參數(shù)的位置不同
以上兩種請求方式都是帶參數(shù)的請求,POST請求首行是:POST /Example04/index.jsp HTTP/1.1,GET請求首行為: GET /Example04?username=zhangsan&password=123 HTTP/1.1,其中GET請求首行中,”?”后面的是請求參數(shù),多個請求參數(shù)之間用”&”連接。可以看出,POST請求的請求參數(shù)并不在請求首行中。
  • GET請求沒有請求體,POST請求有請求體
從例1-3中可以看出,GET請求沒有請求體。從例1-2可以看出,POST請求有請求體,而且請求體的內(nèi)容是從form.html頁面提交過來的參數(shù)。這些參數(shù)的格式:參數(shù)名=參數(shù)值&參數(shù)名=參數(shù)值&…,get請求沒有請求體,它的請求參數(shù)附加在請求首行的url后面。

本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://xamj520.com/javaee
0 分享到:
和我們在線交談!