當我們像服務器發送數據時,我們可以採用get或者post,但是什麼時候用get?什麼時候用post?並且兩者有什麼區別麼?
Get請求和Post請求的區別
1、使用get的時候,參數會在url後面傳遞數據,而post不會顯示,因爲post請求是最爲http消息的實體內容發送給web服務器。這種區別對於用戶是不可見的。
2、get請求發送數據量小(最多也就1024字節),post請求發送數據量大。
爲什麼說get請求數據量小呢?
因爲get是通過url提交數據,那麼get可提交的數據量跟url的長度有直接的關係,而實際上url不存在參數上限的問題,而這個限制是瀏覽器及服務器對它的限制。限制的大小取決於操作系統的支持,注意限制是整個url的長度,而不僅僅是你的參數值數據長度。
3、get的安全性非常低,post安全性較高。
原因:get的請求的數據會被瀏覽器緩存,其他人可以從瀏覽器的歷史記錄讀取到這些記錄,例如賬號和密碼。相對於post,可以避免這些問題。
4、在客戶端使用get請求時,服務器端使用Request.QueryString來獲取參數,而客戶端使用post請求時,服務器端使用Request.Form來獲取參數。
5、Get請求的目的是給予服務器一些參數,以便從服務器獲取列表。例如:list.aspx?page=1,表示獲取第一頁的數據;Post請求的目的是向服務器發送一些參數,例如form中的內容。
何時用post請求?何時用get請求?
若符合下列任一情況,則用POST方法:
- 請求的結果有持續性的副作用,例如,數據庫內添加新的數據行。
- 若使用GET方法,則表單上收集的數據可能讓URL過長。
- 要傳送的數據不是採用7位的ASCII編碼。
- POST方式傳遞的數據量,不受限制。
若符合下列任一情況,則用GET方法:
- 請求是爲了查找資源,HTML表單數據僅用來幫助搜索。
- 請求結果無持續性的副作用。
- 收集的數據及HTML表單內的輸入字段名稱的總長不超過1024個字符。
- 通常不能大於2KB