【问题标题】:Are REST and SOAP enemies? [closed]REST 和 SOAP 是敌人吗? [关闭]
【发布时间】:2011-06-18 02:49:51
【问题描述】:

如今,REST 在网络社区中非常流行。所以我很想知道这两个问题。

  1. SOAP 和 REST 是敌人吗?
  2. 哪个更好,为什么?

【问题讨论】:

  • 对这里所涉及的技术一无所知,所以请接受这一点:但通常最好将两个不同的问题作为两个不同的问题而不是在一个问题中提出。但也许两者都可以同时得到合理的回答。
  • @Joey:感谢您编辑我的问题。这两个问题彼此相关,因此我在一个问题中提出了它。
  • 正如我所说,很可能它们都足够接近,可以同时得到回答——我无法判断,因为我无法给出答案。我只是想给出一个通用的方法来做到这一点:-)
  • 请注意,在 CS 中没有“更好”,只是更适合特定场景。描述您的具体需求,我们或许可以帮助您做出决定。
  • @the_drow:我同意你的观点,在 CS 中没有“更好”这个词。我在这种情况下使用了“更好”这个词,如果我有两种执行相同操作的方法,那么我会选择哪个.

标签: wcf rest soap


【解决方案1】:

他们不是敌人,因为他们有不同的目的。 REST 用于轻量级通信,当您需要 Web 服务处理来自大量客户端的大量请求时,您不需要服务器在与每个客户端的通信中保持状态。

另一方面,SOAP 更重,但包含一些 REST 中不存在的功能,例如保持状态、处理安全性等。

所以每个场景都会更好。

【讨论】:

  • 您可以使用 REST 处理安全性,但它取决于您使用的协议。 HTTP 具有身份验证机制。
  • 对于 SOAP,有一些库可以生成与现有系统交互的代码
  • 这是因为 SOAP 作为一种协议提供了类型安全性,但是代码生成是由模式(WADL、WSDL 等)而不是 SOAP 协议本身完成的。
【解决方案2】:

REST 是一种架构。 SOAP 是一种协议。
两者之间的主要区别在于 REST 利用当前协议来执行其操作并向客户端公开服务。如果是网络,这是 HTTP,但它可以与任何其他协议一起使用。
事实上 SOAP 在它的后期和不太常见的版本中采用了一些 RESTful 特性(例如使用 HTTP 动词而不是在信封级别重新定义它们)。

[无耻促销]
我建议你看看my presentation 关于网络服务。 另请查看 my question here,它解释了 REST 和 RPC 之间的区别(SOAP 是某种形式的 RPC)
[/shameless-promotion]

【讨论】:

    猜你喜欢
    • 2013-02-14
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 2011-10-26
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    相关资源
    最近更新 更多