一、概述
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ā)送一次。