更新時間:2023-11-17 來源:黑馬程序員 瀏覽量:
在HTTP的請求消息中,請求方式有GET、POST、HEAD、OPTIONS、DELETE、TRACE、PUT和CONNECT共八種,每種方式都指明了操作服務器中指定URI資源的方式。然而在實際開發中,使用最多的請求方式是GET和POST,其說明如表8-1所示。
表8-1 HTTP常用的兩種請求方式
表8-1中列舉了HTTP常用的兩種請求方式,針對這兩種請求方式的詳細講解如下所示。
當用戶在瀏覽器地址欄中直接輸入某個URL地址或者單擊網頁上的某個超鏈接時,瀏覽器將使用GET方式發送請求。如果將網頁上的form表單的method屬性設置為GET或者不設置method屬性(默認值是GET),那么當用戶提交表單時,瀏覽器也將使用GET方式發送請求。
如果將瀏覽器請求的URL中有參數部分,那么在瀏覽器生成的請求消息中,參數部分將附加在請求行中的資源路徑后面。先來看一個URL地址,具體如下:
name=zhangsan&age=23
在上述URL中,?后面的內容為參數信息。參數是由參數名和參數值組成的,并且在中間使用等號(=)進行連接。需要注意的是,如果URL地址中有多個參數,參數之間需要用&分隔。
當瀏覽器向服務器發送請求消息時,上述URL中的參數部分會附加在需要訪問的URI資源后面,如下所示:
GET/javaForum? name=itcast&age=23 HTTP/1.1
需要注意的是,使用GET方式傳送的數據量有限,最多不能超過1KB。
如果將網頁上的form表單的method屬性設置為POST,那么當用戶提交表單時,瀏覽器將使用POST方式提交表單內容,并把各個表單元素及數據作為HTTP消息的實體內容發送給服務器,而不是作為URI地址的參數傳遞。另外,在使用POST方式向服務器傳遞數據時,Content-Type消息頭會自動設置為application/x-www-form-urlencoded,Content-Length消息頭會自動設置為實體內容的長度,如下所示:
POST /javaForum HTTP/1.1 Host:
對于使用POST方式傳遞的請求消息,服務器端程序會采用與獲取URI后面參數相同的方式獲取表單各個字段的數據。
在實際開發中,通常都會使用POST方式發送請求,其原因主要有兩個。第一,POST傳輸的數據大小無限制。由于GET請求方式是通過請求參數傳遞數據的,因此最多可傳遞1KB的數據。而POST請求方式是通過實體內容傳遞數據的,因此傳遞數據的大小無限制。第二,POST比GET請求方式更安全。因為GET請求方式的參數信息都會在URL地址欄中明文顯示,而POST請求方式傳遞的參數隱蔽在實體內容中,用戶是看不到的,因此,POST比GET請求方式更安全。