1.安全程度不同。post更安全,不會作為url的一部分,不會被快取、儲存在伺服器日誌、以及瀏覽器瀏覽記錄中。
注:http協議用法約定get使用url或cookie傳參,而post將資料放在body中。
2.資料容量不同。post傳送的資料更大,get有url長度限制。
注:http協議並未規定get和post的長度限制,但瀏覽器和web伺服器會對url的長度有所限制,例如ie,則最大長度為2083byte;chrome,則最大長度8182byte,apache限制為8192 byte,iis 16384byte。
3.支援的資料型別不同。post能傳送更多的資料型別,get只能傳送ascii字元。
4.速度不同。post比get慢,原因見附。
5.應用場景不同。post用於修改和寫入資料,get一般用於搜尋排序和篩選之類的操作(**,支付寶的搜尋查詢都是get提交),目的是資源的獲取,讀取資料
6.是否冪等性。get請求是冪等性的,post請求不是,所以post不能進行管道化傳輸。(冪等性是指一次和多次請求某乙個資源應該具有同樣的***。簡單來說意味著對同一url的多個請求應該返回同樣的結果。)
附:為什麼get比post更快
1.post請求包含更多的請求頭
因為post需要在請求的body部分包含資料,所以會多了幾個資料描述部分的首部字段(如:content-type),這其實是微乎其微的。
2.post在真正接收資料之前會先將請求頭髮送給伺服器進行確認,然後才真正傳送資料
post請求的過程:
(1)瀏覽器請求tcp連線(第一次握手)
(2)伺服器答應進行tcp連線(第二次握手)
(3)瀏覽器確認,並傳送post請求頭(第三次握手,這個報文比較小,所以http會在此時進行第一次資料傳送)
(4)伺服器返回100 continue響應
(5)瀏覽器傳送資料
(6)伺服器返回200 ok響應
get請求的過程:
(1)瀏覽器請求tcp連線(第一次握手)
(2)伺服器答應進行tcp連線(第二次握手)
(3)瀏覽器確認,並傳送get請求頭和資料(第三次握手,這個報文比較小,所以http會在此時進行第一次資料傳送)
(4)伺服器返回200 ok響應
從過程來說,get的總耗是post的2/3左右。
參考文獻:
http get 和 post 請求的優缺點和誤區 --前端優化;
python get請求和post請求的不同
1.安全程度不同。post 更安全,不會作為 url的一部分,不會被快取 儲存在伺服器日誌 以及瀏覽器瀏覽記錄中。注 協議用法約定 get使用 url或 cookie 傳參,而 post 將資料放在 data中。2.資料容量不同。post 傳送的資料更大,get有 url長度限制。注 協議並未規定 ...
python get的方式呼叫api
import requests 匯入request模組 def apisort url r params1 response requests.get url url,params params1 用匯入的request模組的get方法訪問url,並在後面加上引數 print response.st...
GET和POST的區別,何時使用POST?
get 一般用於資訊獲取,使用url傳遞引數,對所傳送資訊的數量也有限制,一般在2000個字元 post 一般用於修改伺服器上的資源,對所傳送的資訊沒有限制。get方式需要使用request.querystring來取得變數的值,而post方式通過request.form來獲取變數的值,也就是說ge...