冪等校驗


一個HTTP方法是冪等的,指的是同樣的請求被執行一次與連續執行多次的效果是一樣的,服務器的狀態也是一樣的。

 

其實冪等就是一個操作或者接口,不管你調多少次,每次執行的結果都跟第一次一樣。

 

比如數學上,1這個數字就是冪等的,無論你用什么數字跟1乘,乘多少次,最后的結果都跟第一次是一樣的。

試想這樣的一種場景:在電商平台上支付后,因為網絡原因導致系統提示你支付失敗,於是你又重新付款了一次,等完成后檢查網銀發現被系統扣了兩次款,這是一種什么樣的體驗?

造成上述問題的原因可能有很多,比如第一次付款時實際支付成功,但是信息返回時網絡中斷導致系統誤判;又比如第一次付款的確失敗了,但第二次付款時發生意外,導致支付請求被重復發送等等。在一次支付的過程中,每個環節都有可能會發生問題,我們要如何規避這類問題引發的分險?

冪等性是解決這類問題的方案之一,所以在電商,銀行,互聯網金融等對數據准確性要求很高的領域中,這一特性具有十分重要的地位。

所以對於一些重要的接口或者操作,我們是要求后台保證其冪等性的。因為客戶端可能有重試機制,另外中間人攻擊可能會進行請求的重放,這些都有可能導致接口被多次調用,像上面的扣款操作,如果接口沒有實現冪等,那么后果是相當不堪設想的。

如何測試?

  • 首先在需求分析的時候我們要有能力識別出需要實現冪等的接口,提前要求開發同學去實現;
  • 測試過程中由於冪等的特性是多次調用的結果相同,那么可以用自動化的方式去反復調用,這樣會比較高效;
  • 異常情況需要考慮到,比如除了第一次調用之外的調用是否有性能問題,稍微修改一些無關緊要的參數是否會破壞冪等之類的;


免責聲明!

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



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