GET和POST的區(qū)別

GET和POST的區(qū)別
前言
實際上這個問題總是會被問道,日常也常用到這兩種方法,知道使用的場景,但是一直沒有好好總結(jié)過,今天一并好好看看吧。
HTTP的請求類型
HTTP協(xié)議實際上是一種標準,規(guī)范,建議大家怎樣去做,也方便一些底層實現(xiàn),就跟交通規(guī)則一樣,也就是說你不遵守也可以,你也可以使用其他方法實現(xiàn),這一點可以看看參考鏈接5(評論也要看),下面說正題。
客戶端對服務(wù)器的請求類型主要有四種:
GET(從服務(wù)器獲取)
POST(向服務(wù)器發(fā)送請求數(shù)據(jù))
PUT(更新)
DELETE(刪除)

一般來講,分別對應(yīng)著查、增、更、刪四種操作,不過實際上四種操作一般情況下通過GET和POST就可以完成了,所以日常使用最多的也都是這兩個。
其他的用的比較少的還有一些方法,如HEAD,CONNECT等,詳細的可以去看看參考鏈接1.
POST和GET區(qū)別
GET被瀏覽器強制支持(POST是可選的,不過一般都支持)
GET是冪等的,POST非冪等
GET可以被瀏覽器緩存,POST不可以
GET請求是『安全』的,POST不安全
POST相對來說比GET要『安全』一些
參數(shù)大小(理想和現(xiàn)實)

冪等
冪等(idempotent、idempotence)是一個數(shù)學(xué)與計算機學(xué)概念,常見于抽象代數(shù)中。在編程中.一個冪等操作的特點是其任意多次執(zhí)行所產(chǎn)生的影響均與一次執(zhí)行的影響相同。冪等函數(shù),或冪等方法,是指可以使用相同參數(shù)重復(fù)執(zhí)行,并能獲得相同結(jié)果的函數(shù)。這些函數(shù)不會影響系統(tǒng)狀態(tài),也不用擔(dān)心重復(fù)執(zhí)行會對系統(tǒng)造成改變。
百度百科

例如abs(-1)=abs(abs(-1)),這里就是就是說每次GET得到的數(shù)據(jù)是不變的。
GET可以被緩存
比方說通過GET請求了某個url,然后一些參數(shù)都明確的附在url后面了,查看瀏覽器歷史訪問的時候就可以看見了,一些文件也在訪問的同時被緩存了,而一般POST的則不會。
注:RFC中POST請求也可以被緩存,但是瀏覽器一般也不支持,就跟TCP/IP和OSI模型一樣,理想和現(xiàn)實的區(qū)別
GET相對『安全』
這里的安全指的是GET不會改變服務(wù)器里的數(shù)據(jù),而POST則一般會更改數(shù)據(jù)
POST相對『安全』
這里是說相對『安全』,url中會附帶GET請求的一些參數(shù),而POST的在url中則看不到。
注:抓包都能看見,都是明文傳輸
參數(shù)
RFC中并沒有對請求的參數(shù)做大小限制,但是實際上瀏覽器對url的長度都有限制,一般對POST的數(shù)據(jù)大小也會做一些限制,所以也是標準和瀏覽器不一致的一個表現(xiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容