日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

什么是幂等性?(幂等处理是什么意思)(分别是什么意思)

發布時間:2023/12/19 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 什么是幂等性?(幂等处理是什么意思)(分别是什么意思) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

HTTP 冪等方法,是指無論調用多少次都不會有不同結果的 HTTP 方法。不管你調用一次,還是調用一百次,一千次,結果都是相同的。

HTTP GET 方法

HTTP GET 方法,用于獲取資源,不管調用多少次接口,結果都不會改變,所以是冪等的。

GET     /tickets       # 獲取ticket列表
GET     /tickets/12    # 查看某個具體的ticket

只是查詢數據,不會影響到資源的變化,因此我們認為它冪等。

值得注意的是,冪等性指的是作用于結果而非資源本身。怎么理解呢?例如,這個 HTTP GET 方法可能會每次得到不同的返回內容,但并不影響資源。
可能你會問有這種情況么?當然有咯。例如,我們有一個接口獲取當前時間,我們就應該設計成

GET     /service_time # 獲取服務器當前時間

它本身不會對資源本身產生影響,因此滿足冪等性。

HTTP POST 方法

HTTP POST 方法是一個非冪等方法,因為調用多次,都將產生新的資源。

POST    /tickets       # 新建一個ticket

因為它會對資源本身產生影響,每次調用都會有新的資源產生,因此不滿足冪等性。

HTTP PUT 方法

PUT     /tickets/12    # 更新ticket 12

因為它直接把實體部分的數據替換到服務器的資源,我們多次調用它,只會產生一次影響,但是有相同結果的 HTTP 方法,所以滿足冪等性。

HTTP PATCH 方法

HTTP PATCH 方法是非冪等的。HTTP POST 方法和 HTTP PUT 方法可能比較好理解,但是 HTTP PATCH 方法只是更新部分資源,怎么是非冪等的呢?

因為,PATCH 提供的實體則需要根據程序或其它協議的定義,解析后在服務器上執行,以此來修改服務器上的資源。換句話說,PATCH 請求是會執行某個程序的,如果重復提交,程序可能執行多次,對服務器上的資源就可能造成額外的影響,這就可以解釋它為什么是非冪等的了。

PATCH   /tickets/12    # 更新ticket 12

此時,我們服務端對方法的處理是,當調用一次方法,更新部分字段,將這條 ticket 記錄的操作記錄加一,這次,每次調用的資源是不是變了呢,所以它是有可能是非冪等的操作。

HTTP DELETE 方法

HTTP DELETE 方法用于刪除資源,會將資源刪除。

DELETE  /tickets/12    # 刪除ticekt 12

調用一次和多次對資源產生影響是相同的,所以也滿足冪等性。

如何設計符合冪等性的高質量 RESTful API

HTTP GET vs HTTP POST

也許,你會想起一個面試題。HTTP 請求的 GET 與 POST 方式有什么區別? 你可能會回答到:GET 方式通過 URL 提交數據,數據在 URL 中可以看到;POST 方式,數據放置在 HTML HEADER 內提交。但是,我們現在從 RESTful 的資源角度來看待問題,HTTP GET 方法是冪等的,所以它適合作為查詢操作,HTTP POST 方法是非冪等的,所以用來表示新增操作。

但是,也有例外,我們有的時候可能需要把查詢方法改造成 HTTP POST 方法。比如,超長(1k)的 GET URL 使用 POST 方法來替代,因為 GET 受到 URL 長度的限制。雖然,它不符合冪等性,但是它是一種折中的方案。

HTTP POST vs HTTP PUT

對于 HTTP POST 方法和 HTTP PUT 方法,我們一般的理解是 POST 表示創建資源,PUT 表示更新資源。當然,這個是正確的理解。

但是,實際上,兩個方法都用于創建資源,更為本質的差別是在冪等性。HTTP POST 方法是非冪等,所以用來表示創建資源,HTTP PUT 方法是冪等的,因此表示更新資源更加貼切。

HTTP PUT vs HTTP PATCH

此時,你看會有另外一個問題。HTTP PUT 方法和 HTTP PATCH 方法,都是用來表述更新資源,它們之間有什么區別呢?我們一般的理解是 PUT 表示更新全部資源,PATCH 表示更新部分資源。首先,這個是我們遵守的第一準則。根據上面的描述,PATCH 方法是非冪等的,因此我們在設計我們服務端的 RESTful API 的時候,也需要考慮。如果,我們想要明確的告訴調用者我們的資源是冪等的,我的設計更傾向于使用 HTTP PUT 方法。

總結

以上是生活随笔為你收集整理的什么是幂等性?(幂等处理是什么意思)(分别是什么意思)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91香蕉视频在线看 | 午夜久久久久久久久久久 | 亚洲成人午夜电影 | 麻豆人妻少妇精品无码专区 | 欧美色图30p | 成人精品一区二区三区 | 日韩影视一区 | 姐姐的朋友2在线 | 国产成人精品一区二区 | 99干99| 亚洲欧美另类在线观看 | 中文字幕性 | 欧美另类z0zx974| 黄页av| 亚洲一二三区av | 国产小毛片 | 中文字幕一区二区三区四区 | 中文字幕二区在线观看 | 一级大片黄色 | 99er在线观看 | 能看av的网址 | 泰国午夜理伦三级 | 成人在线观看国产 | 欧美亚洲精品天堂 | 欧美黄色a级大片 | 欧美性猛交99久久久久99按摩 | 午夜av免费在线观看 | 91 色| av嫩草| 久久精品99久久久 | 国产精品h| 国产最新在线视频 | 国产欧美精品国产国产专区 | 亚洲天堂视频在线播放 | 欧美日韩一区在线播放 | 日韩三级视频在线观看 | 日本黄色一区二区三区 | 国产素人在线观看 | 色乱码一区二区三区在线男奴 | 亚洲va久久久噜噜噜无码久久 | 免费黄色网址在线 | 91精品影视 | 日韩欧美网| 久久久96人妻无码精品 | 日韩国产欧美一区二区三区 | 日韩特级 | 女同激情久久av久久 | 岳乳丰满一区二区三区 | 中文免费视频 | 精品国产无码在线观看 | 亚洲春色在线 | 久热精品视频在线 | 欧美三级久久 | 午夜影院久久久 | 国产精品xxx | 欧美精品在线免费 | 中文字幕日产 | 熟妇高潮一区二区三区在线播放 | 黄色动漫在线观看 | www.av网址| 国产91综合一区在线观看 | 日本视频www | 亚洲欧美另类日韩 | 精品视频一区二区三区在线观看 | www.白白色 | 欧美又粗又大xxxxbbbb疯狂 | 扒下小娇妻的内裤打屁股 | 欧美成人久久久免费播放 | 无码人妻久久一区二区三区蜜桃 | 成人在线观看视频网站 | 人妻夜夜爽天天爽 | 天堂中文在线资 | 中文字幕免费高清在线 | 天天综合日韩 | 深爱激情av | 草莓视频18免费观看 | 成人宗合网 | ktv做爰视频一区二区 | 噜噜噜色 | √8天堂资源地址中文在线 欧美精品在线一区二区 | 黄色一极毛片 | 色综合福利 | 夜夜爽av | 毛片视频免费播放 | 嫩色av | 欧美一级黄色大片 | 亚洲爽爽网 | 女同性做受全过程动图 | 亚洲美女性生活 | 最新色网站 | 韩国av在线播放 | 久久精品www人人爽人人 | 人成午夜| 精品人妻伦一二三区免费 | 91免费大片 | 天天干天天操天天拍 | 搞逼综合网| 黄色性大片 | 亚洲午夜福利一区二区三区 |