簡(jiǎn)略
細(xì)節(jié)每個(gè)人都有一個(gè)合適的地方。即使你不跟著安息原則上,學(xué)習(xí)REST和如何使用面向資源的方法可以獲得很多好處。
RESTful應(yīng)用程序?qū)?/trans>use GETs
對(duì)于兩個(gè)都是safe and idempotent
.
A safe
操作是一種操作not change the data
請(qǐng)求。
阿idempotent
操作是結(jié)果將be the same
不管你要求多少次。
這是合理的,因?yàn)镚ET被用于安全操作,它們也是自動(dòng)的。冪等..通常,GET用于檢索資源(例如,堆棧溢出時(shí)的問題及其相關(guān)答案)或資源集合。
RESTful應(yīng)用程序?qū)⑹褂?/trans>PUTs
對(duì)于以下操作not safe but idempotent
.
我知道這個(gè)問題是關(guān)于GET和POST的,但我馬上就會(huì)回到POST。
通常,PUT用于編輯資源(例如,在堆棧溢出時(shí)編輯問題或答案)。
A POST
將用于以下任何操作:neither safe or idempotent
.
通常,POST將用于創(chuàng)建新資源,例如創(chuàng)建一個(gè)新的SO問題(盡管在某些設(shè)計(jì)中也會(huì)使用PUT)。
如果你運(yùn)行這篇文章兩次,你最終會(huì)產(chǎn)生兩個(gè)新的問題。
還有一個(gè)DELETE操作,但我猜我可以把它留在那里:)
討論
實(shí)際上,現(xiàn)代Web瀏覽器通常只支持GET和POST(您可以通過javascript調(diào)用執(zhí)行所有這些操作,但在表單中輸入數(shù)據(jù)和按提交時(shí),通常有兩個(gè)選項(xiàng))。在RESTful應(yīng)用程序中,POST經(jīng)常會(huì)被覆蓋以提供PUT和DELETE調(diào)用。
但是,即使您沒有遵循RESTful原則,考慮使用GET檢索/查看信息和POST來創(chuàng)建/編輯信息也是有用的。
您不應(yīng)該將GET用于更改數(shù)據(jù)的操作。如果搜索引擎爬行一個(gè)鏈接到您的邪惡操作,或客戶書簽,它可能會(huì)帶來很大的麻煩。