Get與Post請求的區別

2021-10-19 08:10:37 字數 1597 閱讀 2913

在使用表單提交資料到伺服器的時候有兩張方式可共選擇,乙個是post乙個是get。可在中的method屬性中指定提交的方式。如:,如果不指定method屬性,則會預設該屬性為」get」方式。

不同點一:

通過get方式提交的資料有大小的限制,通常在1024位元組左右。也就是說如果提交的資料很大,用get方法就可需要小心;而post方式沒有資料大小的限制,理論上傳送多少資料都可以。

不同點二:

通過get傳遞資料,實際上是將傳遞的資料按照」key,value」的方式跟在url的後面來達到傳送的目的的;而post傳遞資料是通過http請求的附件進行的,在url中並沒有明文顯示。

不同點三:

通過get方式提交的資料安全性不高,而post方式的更加安全。

不同點四:

post比get慢。

不同點五:

post用於修改和寫入資料,get一般用於搜尋排序和篩選之類的操作(**,支付寶的搜尋查詢都是get提交),目的是資源的獲取,讀取資料。

1.post請求包含更多的請求頭

因為post需要在請求的body部分包含資料,所以會多了幾個資料描述部分的首部字段(如:content-type),這其實是微乎其微的。

2.最重要的一條,post在真正接收資料之前會先將請求頭髮送給伺服器進行確認,然後才真正傳送資料。

get產生乙個tcp資料報,post產生兩個tcp資料報。

對於get方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);

而對於post,瀏覽器先傳送header,伺服器響應100 continue,瀏覽器再傳送data,伺服器響應200 ok(返回資料)。

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左右,這個口說無憑,網上已經有網友進行過測試。

3.get會將資料快取起來,而post不會

使用ajax採用get方式請求靜態資料(比如html頁面,)的時候,如果兩次傳輸的資料相同,第二次以後消耗的時間將會在10ms以內(chrome測試),而post每次消耗的時間都差不多。經測試,chrome和firefox下如果檢測到get請求的是靜態資源,則會快取,如果是資料,則不會快取,但是ie什麼都會快取起來。

參考文章

get與post請求區別

一 語義區別 http請求中get的語義是請求獲取資源,是安全 冪等 可快取的,報文主體沒有任何語義。post的語義處理資源是根據請求報文主體,對指定資源做處理,是不安全 不冪等 不可快取的 大部分 二 表現形式區別 1 get中請求引數是附在url裡,以?分割url和傳輸資料,引數之間以 相連。如...

get與post請求區別

get後退按鈕 重新整理無害,post資料會被重新提交 瀏覽器應該告知使用者資料會被重新提交 get書籤可收藏,post為書籤不可收藏。get能被快取,post不能快取 get歷史引數保留在瀏覽器歷史中。post引數不會儲存在瀏覽器歷史中。get對資料長度有限制,當傳送資料時,get 方法向 url...

Get請求與Post請求的區別

在做高校雲平台期間,相信大家都遇到了傳值問題,估計大家對於get與post的請求方式都已經得心應手。用是用了,但是對於其中的區別,但是,如果不去總結,總感覺這知識自己還沒有掌握,我們今天就來分析一下。在提供伺服器請求的過程中,有兩種方式,分別是 get與post。get請求是最常見的請求型別。最常用...