http協(xié)議定義了8種標(biāo)準(zhǔn)方法:
GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT,OPTIONS。
其中比較常用的是GET,POST,PUT,DELETE,根據(jù)restful接口風(fēng)格建議:
GET 對(duì)應(yīng) 獲取
POST 對(duì)應(yīng) 新增
PUT 對(duì)應(yīng) 更新
DELETE 對(duì)應(yīng) 刪除
那這四種方法除語(yǔ)義外有什么其他區(qū)別呢识腿?首先介紹兩個(gè)概念:安全性和冪等性菠红。如果針對(duì)一個(gè)URL的方法不改變URL所指資源的狀態(tài)适贸,就稱其為安全的佛析,顯然在這四種方法里沿后,只有GET方法是安全的刽锤。冪等性镊尺,來源于數(shù)學(xué)上的術(shù)語(yǔ),即對(duì)同一操作數(shù)的多次操作與一次操作效果是一樣的操作符即稱冪等操作符并思,比如取絕對(duì)值操作符庐氮。類比到網(wǎng)絡(luò)操作中就是指一方法對(duì)同一URL的請(qǐng)求,多次和一次的效果是一致的宋彼,就稱該方法是冪等的弄砍,顯然除POST外其他三種方法都是冪等的,總結(jié)如下表:
http方法 ? ? 安全 ? 冪等
GET ? ? ? ? ? ? 是 ? ? ? ?是
POST ? ? ? ? ? 否 ? ? ? ?否
PUT ? ? ? ? ? ? 否 ? ? ? ?否
DELETE ? ? ? ?否 ? ? ? ?否
另外在具體技術(shù)實(shí)現(xiàn)上输涕,這四種方法也有一些區(qū)別音婶,比如對(duì)比get和post,get允許傳輸?shù)臄?shù)據(jù)比較小莱坎,且隨url傳輸衣式,post理論上沒有數(shù)據(jù)傳輸上限,且隨數(shù)據(jù)報(bào)文主體傳輸檐什。
注意:GET,POST,PUT,DELETE是從restful的角度進(jìn)行劃分碴卧,但是從最終效果的角度講POST方法是能夠?qū)崿F(xiàn)GET,PUT,DELETE方法的最終效果的。