在使用表單提交資料到伺服器的時候有兩張方式可共選擇,乙個是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請求是最常見的請求型別。最常用...