天天看點

GET方法和POST方法的差別

http請求:get與post方法的差別

1.http請求格式:

<request line>

<headers>

<blank line>

[<request-body>]

在http請求中,第一行必須是一個請求行(request line),用來說明請求類型、要通路的資源以及使用的http版本。緊接着是一個首部(header)小節,用來說明伺服器要使用的附加資訊。在首部之後是一個空行,再此之後可以添加任意的其他資料[稱之為主體(body)]。

2.get與post差別

http定義了與伺服器互動的不同方法,最基本的方法是 get 和 post.http-get和http-post是使用http的标準協定動詞,用于編碼和傳送變量名/變量值對參數,并且使用相關的請求語義。每個http-get和http-post都由一系列http請求頭組成,這些請求頭定義了用戶端從伺服器請求了什麼,而響應則是由一系列http應答頭和應答資料組成,如果請求成功則傳回應答。

  http-get以使用mime類型application/x-www-form-urlencoded的urlencoded文本的格式傳遞參數。urlencoding是一種字元編碼,保證被傳送的參數由遵循規範的文本組成,例如一個空格的編碼是"%20"。附加參數還能被認為是一個查詢字元串。

  與http-get類似,http-post參數也是被url編碼的。然而,變量名/變量值不作為url的一部分被傳送,而是放在實際的http請求消息内部被傳送。

(1)get是從伺服器上擷取資料,post是向伺服器傳送資料。

在用戶端,get方式在通過url送出資料,資料在url中可以看到;post方式,資料放置在html header内送出。

(2)對于get方式,伺服器端用request.querystring擷取變量的值,對于post方式,伺服器端用request.form擷取送出的資料。

(3)   get方式送出的資料最多隻能有1024位元組,而post則沒有此限制。

(4)安全性問題。正如在(1)中提到,使用 get 的時候,參數會顯示在位址欄上,而 post 不會。是以,如果這些資料是中文資料而且是非敏感資料,那麼使用 get;如果使用者輸入的資料不是中文字元而且包含敏感資料,那麼還是使用 post為好。