HTTP協議中PUT和POST使用區別

2021-08-08 05:27:03 字數 628 閱讀 2073

這倆個方法初看一下好像都是更新資源,但是有本質上的區別,那就是語義。在http中,put被定義為冪等(idempotent)的方法,post則不是,這是乙個很重要的區別。

首先解釋冪等,冪等是數學的乙個用語,對於單個輸入或者無輸入的運算方法,如果每次都是同樣的結果,則稱其是冪等的。也就是說,如果乙個網路重複執行多次,產生的效果是一樣的,那就是冪等(idempotent)。

用於提交請求,可以更新或者建立資源,是非冪等的,舉個例子:

在使用者註冊功能上,每次提交都是建立乙個使用者賬號,這個時候就用post。

estful url位址應為:/user/creation?user_name=&pwd=

用於向指定url傳送更新資源,是冪等的。

還是使用者模組,比如修改使用者密碼,雖然提交的還是賬戶名跟使用者密碼這個倆個必填引數,但是每次提交都只是更新該使用者密碼,每次請求都只是覆蓋原先的值。此時就該用put。

estful url位址應為:/user//modify?pwd=**

當需要以更新的形式來修改某一具體資源的時候,如何判斷用put還是post呢?

很簡單,如果該更新對應的uri多次呼叫的結果一致,則put。如果每次提交相同的內容,最終結果不一致的時候,用post。

HTTP協議中PUT和POST使用區別

有的觀點認為,應該用post來建立乙個資源,用put來更新乙個資源 有的觀點認為,應該用post來更新乙個資源,用put來建立乙個資源 還有的觀點認為可以用put和post中任何乙個來做建立或者更新乙個資源。這些觀點都只看到了風格,爭論起來也只是爭論哪種風格更好,其實,用put還是post,不是看這...

HTTP協議中PUT和POST使用區別

這倆個方法初看一下好像都是更新資源,但是有本質上的區別,那就是語義。在http中,put被定義為冪等 idempotent 的方法,post則不是,這是乙個很重要的區別。首先解釋冪等,冪等是數學的乙個用語,對於單個輸入或者無輸入的運算方法,如果每次都是同樣的結果,則稱其是冪等的。也就是說,如果乙個網...

HTTP中Put和Post的區別

解釋http中put和post。它們有什麼區別,哪個使用時更加安全?put和post都是瀏覽器向網頁伺服器提交資料的方法。put把要提交的資料編碼在url中,比如 中就編碼了鍵值對 key1,value1 和key2,value2。受限於url的長度限制,put方法能傳輸的資料有限 不同瀏覽器對ur...