python get和post的區別

2021-08-28 18:42:44 字數 1194 閱讀 4500

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...