HTTP協議 GET和POST的左右互博

CTNily發表於2020-10-26

HTTP協議中存在著許多的方法,當然最常用的方法當屬GET和POST方法。下面表示GET和POST的具體形式
GET
在這裡插入圖片描述
POST
在這裡插入圖片描述
一、POST比GET更強?
GET,做為最簡單的HTTP方法,簡單的就是使用者給伺服器一個要求,讓伺服器獲取一個資源然後在拿回去給使用者,具體什麼資源是無所謂的。“拿來主義”,GET是非常熟練的。
但是POST方法不同於GET,這應該叫GET++版,它可以給伺服器發請求,然後拿伺服器給的資源在回去。但是它會給伺服器發一個表單,那麼這讓GET的“拿來主義”變了味道。
二、深入GET,GET有多長
平時在我們上網的時候,不知道你發沒發現,對於使用GET協議的,後面附帶的資料不會很長,而且你也不會遇到很長的GET請求,為什麼呢?
GET請求的總字串是有限的,這取決於你所用的伺服器。
同時,要注意,GET的傳送資料是直接附帶到URL後面的,這代表了你傳送的資料會暴露在使用者眼中,這是很嚴重的資訊洩露,想想如果你登入QQ空間,附帶資料有自己的QQ密碼,這是可怕的一件事。這代表了GET的安全性比POST要低很多,雖然POST需要表單,顯然比較麻煩,但是,不是暴露狂的性質,讓POST安全性顯然高很多
三、GET POST內涵
GET請求剖析

GET /user/login.jsp?name=man&password=123 HTTP/1.1 Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1 Connection: Keep-Alive

GET         //請求行,HTTP方法
/user/login.jsp    //Web伺服器上資源的路徑
?name=man&password=123    // 在GET請求中,引數會追加到URL的一部分的後面,以“?”開頭。各引數以“&”分隔。
HTTP/1.1      //Web瀏覽器所請求的協議的版本

POST /user/login.jsp HTTP/1.1
Host: www.wrox.com User-Agent: Mozilla/5.0
(Windows; U; Windows NT 5.1; en-US; rv:1.7.6) Gecko/20050225
Firefox/1.0.1 Content-Type: application/x-www-form-urlencoded
Content-Length: 40 Connection: Keep-Alive
(----此處空一行----)
name=man&password=123 //訊息體,有時被稱為“有效載體”

POST顯然是把請求放入到體中,所以長度不需要和GET一樣受限。

相關文章