【Java】——http中get和post請求的區別
GET和POST請求都是http的請求方式,使用者通過不同的http請求方式完成對資源(URL)的操作,GET、POST、PUT、DELETE就是對應著對這個資源的查,該,增,刪四個操作,具體點來講GET一般用於獲取|查詢資源資訊,而POST一般用於更新資源資訊。
提交引數形式
GET請求提交的資料會在位址列顯示出來,而Post請求不會再位址列顯示出來。GET提交請求的資料會附在URL之後(就是把資料放置在HTTP協議頭中),以?分割URL和傳輸資料,多個引數會用&連線;Post提交:把提交的資料放置在HTTP包的包體中。因此,GET提交的資料會在位址列中顯示,而Post
傳輸資料的大小
Http GET:請求由於瀏覽器對地址長度的限制而導致傳輸的資料有限制(最多隻能有1024位元組),而Post的請求不會因為地址長度限制而導致傳輸資料限制。
安全性
POST的安全性要比GET的安全性高。正如在(1)中提到,使用 Get的時候,引數會顯示在位址列上,而Post不會。所以,如果這些資料是中文資料而且是非敏感資料,那麼使用 get;如果使用者輸入的資料不是中文字元而且包含敏感資料,那麼還是使用 post為好。
安全的和冪等的
所謂安全的意味著該操作用於獲取資訊而非修改資訊。冪等的意味著對同一URL的多個請求應該返回同樣的結果。完整的定義並不像看起來那樣嚴格。換句話說,GET請求一般不應產生副作用。從根本上講,其目標是當用戶開啟一個連結時,她可以確信從自身的角度來看沒有改變資源。比如,新聞站點的頭版不斷更新。雖然第二次請求會返回不同的一批新聞,該操作仍然被認為是安全的和冪等的,因為它總是返回當前的新聞。反之亦然。POST請求就不那麼輕鬆了。POST表示可能改變伺服器上的資源的請求。仍然以新聞站點為例,讀者對文章的註解應該通過POST請求實現,因為在註解提交之後站點已經不同了(比方說文章下面出現一條註解)。(這一條不太理解。)