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