【问题标题】:Thumb-rules to decide between web service implementations: SOAP / REST?在 Web 服务实现之间做出决定的拇指规则:SOAP / REST?
【发布时间】:2009-07-22 15:39:29
【问题描述】:

在 SOAP 和 REST 两种思想流派之间是否有任何拇指规则可供选择?

【问题讨论】:

    标签: rest soap


    【解决方案1】:

    这取决于很多因素。一个并不比另一个好。 Here is a list of differences I wrote before

    【讨论】:

      【解决方案2】:

      这不是“经验法则”,但 David Chappell 在今年的 ESRI DevSummit 主题演讲中就 SOAP 与 REST 进行了精彩的演示。如果你有时间,我强烈建议你听听。

      http://www.esri.com/events/devsummit/sessions/keynote.html

      【讨论】:

        【解决方案3】:

        这里有一个:如果您没有使用 HTTP 以外的其他传输方式,那么 REST 可能是更好的选择。

        【讨论】:

          【解决方案4】:

          首先,虽然 SOAP 是专门面向 Web 的技术,但 REST 与 HTTP 无关,但仍然非常适合 Web 服务。 REST 也是一种架构,而不是一种协议,而 SOAP 是。所以有很多方法可以实现 RESTful 服务,只要它们遵守架构的约束即可。

          REST 更适合传统的 HTTP 堆栈,因为它要求尽可能正确使用协议。 SOAP 仅将 HTTP 用作围绕其自己的协议的一种包装器/代理,这不是 HTTP 的用途。 SOAP 试图绕过 HTTP 的限制,但它没有充分利用 HTTP 提供的大部分功能。

          例如,位于客户端和内容服务器中间的缓存服务器应该能够缓存请求和响应,而无需了解每个内容的任何内容,这对于 SOAP 是不可能的,因为实际内容需要被缓存的是 HTTP 消息内容的子集,位于一堆 SOAP 包装器和专有结构中。 RESTful 服务没有这个问题,因此它们可以更自然地扩展。

          有关 REST 的最佳信息来源,请阅读 Fielding 的 dissertation 和他的 blog,在那里他澄清了常见的误解。 (他是创建 REST 规范的人)

          【讨论】:

          • -1:“更适合传统的 HTTP 堆栈,因为它需要正确使用” - fit 与任何事情有什么关系,要求正确使用如何实现它? SOAP 使用 HTTP 作为许多可能的传输之一,任何了解分层网络协议的人都应该熟悉这个概念。为什么 SOAP 应该关心利用 HTTP 所提供的功能?这是一个协议。我希望您只会缓存 GET 请求和响应?什么“专有结构”?
          • SOAP 需要 POST,它被定义为不可缓存。在 SOAP 中出于多种目的使用相同的 URI 也会阻碍可缓存性。
          猜你喜欢
          • 1970-01-01
          • 2010-09-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-17
          • 2016-10-15
          • 1970-01-01
          相关资源
          最近更新 更多