首頁(yè)常見(jiàn)問(wèn)題正文

Java培訓(xùn):HTTP常用的請(qǐng)求方式有哪些?

更新時(shí)間:2023-11-17 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在HTTP的請(qǐng)求消息中,請(qǐng)求方式有GET、POST、HEAD、OPTIONS、DELETE、TRACE、PUT和CONNECT共八種,每種方式都指明了操作服務(wù)器中指定URI資源的方式。然而在實(shí)際開(kāi)發(fā)中,使用最多的請(qǐng)求方式是GET和POST,其說(shuō)明如表8-1所示。

  表8-1 HTTP常用的兩種請(qǐng)求方式

1700184721732_HTTP常用的兩種請(qǐng)求方式.jpg

  表8-1中列舉了HTTP常用的兩種請(qǐng)求方式,針對(duì)這兩種請(qǐng)求方式的詳細(xì)講解如下所示。

  (1)GET方式

  當(dāng)用戶在瀏覽器地址欄中直接輸入某個(gè)URL地址或者單擊網(wǎng)頁(yè)上的某個(gè)超鏈接時(shí),瀏覽器將使用GET方式發(fā)送請(qǐng)求。如果將網(wǎng)頁(yè)上的form表單的method屬性設(shè)置為GET或者不設(shè)置method屬性(默認(rèn)值是GET),那么當(dāng)用戶提交表單時(shí),瀏覽器也將使用GET方式發(fā)送請(qǐng)求。

  如果將瀏覽器請(qǐng)求的URL中有參數(shù)部分,那么在瀏覽器生成的請(qǐng)求消息中,參數(shù)部分將附加在請(qǐng)求行中的資源路徑后面。先來(lái)看一個(gè)URL地址,具體如下:

 name=zhangsan&age=23

  在上述URL中,?后面的內(nèi)容為參數(shù)信息。參數(shù)是由參數(shù)名和參數(shù)值組成的,并且在中間使用等號(hào)(=)進(jìn)行連接。需要注意的是,如果URL地址中有多個(gè)參數(shù),參數(shù)之間需要用&分隔。

  當(dāng)瀏覽器向服務(wù)器發(fā)送請(qǐng)求消息時(shí),上述URL中的參數(shù)部分會(huì)附加在需要訪問(wèn)的URI資源后面,如下所示:

GET/javaForum? name=itcast&age=23 HTTP/1.1

  需要注意的是,使用GET方式傳送的數(shù)據(jù)量有限,最多不能超過(guò)1KB。

  (2)POST方式

  如果將網(wǎng)頁(yè)上的form表單的method屬性設(shè)置為POST,那么當(dāng)用戶提交表單時(shí),瀏覽器將使用POST方式提交表單內(nèi)容,并把各個(gè)表單元素及數(shù)據(jù)作為HTTP消息的實(shí)體內(nèi)容發(fā)送給服務(wù)器,而不是作為URI地址的參數(shù)傳遞。另外,在使用POST方式向服務(wù)器傳遞數(shù)據(jù)時(shí),Content-Type消息頭會(huì)自動(dòng)設(shè)置為application/x-www-form-urlencoded,Content-Length消息頭會(huì)自動(dòng)設(shè)置為實(shí)體內(nèi)容的長(zhǎng)度,如下所示:

POST /javaForum HTTP/1.1
Host:

  對(duì)于使用POST方式傳遞的請(qǐng)求消息,服務(wù)器端程序會(huì)采用與獲取URI后面參數(shù)相同的方式獲取表單各個(gè)字段的數(shù)據(jù)。

  在實(shí)際開(kāi)發(fā)中,通常都會(huì)使用POST方式發(fā)送請(qǐng)求,其原因主要有兩個(gè)。第一,POST傳輸?shù)臄?shù)據(jù)大小無(wú)限制。由于GET請(qǐng)求方式是通過(guò)請(qǐng)求參數(shù)傳遞數(shù)據(jù)的,因此最多可傳遞1KB的數(shù)據(jù)。而POST請(qǐng)求方式是通過(guò)實(shí)體內(nèi)容傳遞數(shù)據(jù)的,因此傳遞數(shù)據(jù)的大小無(wú)限制。第二,POST比GET請(qǐng)求方式更安全。因?yàn)镚ET請(qǐng)求方式的參數(shù)信息都會(huì)在URL地址欄中明文顯示,而POST請(qǐng)求方式傳遞的參數(shù)隱蔽在實(shí)體內(nèi)容中,用戶是看不到的,因此,POST比GET請(qǐng)求方式更安全。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!