get請求和post請求區(qū)別

一、概述

http請求方式有g(shù)et、post、put、delete等多種,最常用的就是get和post


多種請求方式

二、區(qū)別:

1、GET請求一般用去請求獲取數(shù)據(jù),

????????POST一般作為發(fā)送數(shù)據(jù)到后臺時使用

2、GET請求也可傳參到后臺,但是其參數(shù)在瀏覽器的地址欄的url中可見,所以隱私性安全性較差,且參數(shù)長度也是有限制的

? ? ? ? POST請求傳遞參數(shù)放在Request body中,不會在url中顯示,比GET要安全,且參數(shù)長度無限制

3、GET請求刷新瀏覽器或回退時沒有影響

? ? ????POST回退時會重新提交數(shù)據(jù)請求

4、GET 請求可被緩存

????????POST 請求不會被緩存

5、GET 請求保留在瀏覽器歷史記錄中

???????POST 請求不會保留在瀏覽器歷史記錄中

6、GET 請求可被收藏為書簽

? ??????POST 不能被收藏為書簽

7、GET請求只能進行url編碼(application/x-www-form-urlencoded)

????????POST支持多種編碼方式(application/x-www-form-urlencoded 或 multipart/form-data。為二進制數(shù)據(jù)使用多重編碼。)

8、GET請求比較常見的方式是通過url地址欄請求

????????POST最常見是通過form表單發(fā)送數(shù)據(jù)請求


三、進一步理解

個人查了一些資料后的理解:

post請求和get請求都是HTTP的請求方式,本質(zhì)上來說并無區(qū)別,底層實現(xiàn)都是基于TCP/IP協(xié)議。

但是請求有各種各樣的方式,于是HTTP對請求方式進行了劃分和規(guī)定,于是產(chǎn)生了get、post處理請求的分工和區(qū)別。

此外還有搜索到另外一個區(qū)別:GET產(chǎn)生一個TCP數(shù)據(jù)包;POST產(chǎn)生兩個TCP數(shù)據(jù)包。

對于GET方式的請求,瀏覽器會把http header和data一并發(fā)送出去,服務(wù)器響應(yīng)200(返回數(shù)據(jù));

而對于POST,瀏覽器先發(fā)送header,服務(wù)器響應(yīng)100 continue,瀏覽器再發(fā)送data,服務(wù)器響應(yīng)200 ok(返回數(shù)據(jù))。

1. GET與POST都有自己的語義,不能隨便混用。

2. 據(jù)研究,在網(wǎng)絡(luò)環(huán)境好的情況下,發(fā)一次包的時間和發(fā)兩次包的時間差別基本可以無視。而在網(wǎng)絡(luò)環(huán)境差的情況下,兩次包的TCP在驗證數(shù)據(jù)包完整性上,有非常大的優(yōu)點。

3. 并不是所有瀏覽器都會在POST中發(fā)送兩次包,F(xiàn)irefox就只發(fā)送一次。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容