冪等, put 和post


冪等  : 如果一個方法重復執行多次,產生的效果是一樣的,那就是idempotent(冪等)的。

PUT是冪等的 。

POST不是冪等的 。

PUT 的方法就是其字面表意,將client的資源放在請求URI上。對於服務器到底是創建還是更新,由服務器返回的HTTP Code來區別。

   我們商品批量上架的時候我們用put ,傳入一個數組 。

有的地方說put是更新操作 ,但是我們更新商品的時候用的post ,。

 

POST是用來提交數據的。提交的數據放在HTTP請求的正文里,目的在於提交數據並用於服務器端的存儲,而不允許用戶過多的更改相應數據

(主要是相對於在url 修改要麻煩很多)。
PUT操作是冪等的。所謂冪等是指不管進行多少次操作,結果都一樣。比如我用PUT修改一篇文章,然后在做同樣的操作,每次操作后的結果並沒有不同
POST操作既不是安全的,也不是冪等的,比如常見的POST重復加載問題:當我們多次發出同樣的POST請求后,其結果是創建出了若干的資源。
  安全和冪等的意義在於:當操作沒有達到預期的目標時,我們可以不停的重試,而不會對資源產生副作用。從這個意義上說,POST操作往往是有害的,但很多時候我們還是不得不使用它。
  還有一點需要注意的就是,創建操作可以使用POST,也可以使用PUT,區別在於POST 是作用在一個集合資源之上的(/articles),而PUT操作是作用在一個具體資源之上的(/articles/123),再通俗點說,如果URL可以在客戶端確定,那么就使用PUT,如果是在服務端確定,那么就使用POST,比如說很多資源使用數據庫自增主鍵作為標識信息,而創建的資源的標識信息到底是什么只能由服務端提供,這個時候就必須使用POST。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM