zoukankan      html  css  js  c++  java
  • 浅谈常用接口中的幂等设计

    幂等设计的功效:执行多次操作和执行一次操作的结果都是一样的。

    HTTP四大动作中:

    GET:用于获取资源,不会对服务器产生任何影响,视为安全的。因此其有幂等性。

    POST:用于创建或更新资源,每次执行的结果都不一样。就属这货最不安分。其不具备幂等性。

    PUT:用于创建或更新资源,定位到具体资源。因此具有幂等性。

    DELETE:用于删除资源,定位到具体资源。因此具有幂等性。

    我们通常在设计Web api的时候,需要考虑某些接口操作的幂等性。例如转账,客户A通过转账操作将500元钱转给客户B,该操作在服务器执行成功了,但是由于某些原因(网络阻塞,或者突然断网又恢复网络等原因),转账成功的状态消息并没有被客户A的终端机成功接收,导致客户A误以为转账失败,从而进行了第二次转账。如果这一系列操作不考虑幂等性,那么事后,客户A还不得暴走,账户的钱怎么凭空消失了那么多?如果考虑了幂等性,那么无论客户A在当前页面执行了多少次转账操作,客户B只能收到一次转账的金额500元。这不只是客户体验的问题,也是系统操作完整性的问题。如此看来,幂等性在接口设计中何等重要!

    关于幂等设计,可参考:

    1、Synchronized Token:客户端的每一次 Request 里,必须携带一个服务器端给出的 Hash Code 作为 Token,这个 Token 只能用一次,不能重复使用;

    2、Idempotent Receiver:幂等接收器。

    扩展参考资源:理解HTTP幂等性

  • 相关阅读:
    面向对象中一些容易混淆的概念
    day12作业
    day10作业
    day09作业
    Where与Having的区别
    排序算法之快速排序
    排序算法之冒泡排序
    jQuery中的100个技巧
    用node.js给图片加水印
    代码高亮美化插件-----SyntaxHighlighter
  • 原文地址:https://www.cnblogs.com/williamwsj/p/7142198.html
Copyright © 2011-2022 走看看