SpringMVC中put和post如何選擇

2022-09-19 04:42:08 字數 642 閱讀 6611

有的觀點認為,應該用post來建立乙個資源,用put來更新乙個資源;

有的觀點認為,應該用put來建立乙個資源,用post來更新乙個資源;

還有的觀點認為可以用put和post中任何乙個來做建立或者更新乙個資源。

這些觀點都只看到了風格,爭論起來也只是爭論哪種風格更好,其實,用put還是post,不是看這是建立還是更新資源的動作,這不是風格的問題,而是語義的問題。

舉乙個簡單的例子,假如有乙個部落格系統提供乙個web api,模式是這樣http://superblogging/blogs/,很簡單,將替換為我們的blog名字,往這個uri傳送乙個http put或者post請求,http的body部分就是博文,這是乙個很簡單的rest api例子。我們應該用put方法還是post方法?取決於這個rest服務的行為是否是idempotent的,假如我們傳送兩個http://superblogging/blogs/post/sample請求,伺服器端是什麼樣的行為?如果產生了兩個部落格帖子,那就說明這個服務不是idempotent的,因為多次使用產生了***了嘛;如果後乙個請求把第乙個請求覆蓋掉了,那這個服務就是idempotent的。

前一種情況,應該使用post方法,後一種情況,應該使用put方法。

現在的專案:insert --> post;update --> put

SpringMVC接收PUT請求的解決

如果直接使用put請求會400或405,這是因為tomcat不會解析put請求中的引數,只有post請求時會把引數解析為乙個map,springmvc會將這個map通過request.getparameter 將引數對映到我們的實體類或引數列表 解決方式1 在此過濾器中spring重寫了reques...

HTTP中Put和Post的區別

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

Hbase中put和delete對hfile的操作

put和delete是hbase中最常見的操作,這些操作最終都是體現在對hfile的修改上。下面通過一些例子看下,當我們執行put和delete後,hfile中發生了什麼樣的變化。為了簡單,我們通過org.apache.hadoop.hbase.io.hfile.hfile來檢視hfile中的內容變...