【问题标题】:What is the relationship between WCF, Rest and SOAP?WCF、Rest和SOAP是什么关系?
【发布时间】:2013-02-14 03:44:04
【问题描述】:

WCF 和 REST&SOAP 是什么关系? WCF 是基于其中一种技术(REST 或 SOAP)还是单独的技术?

【问题讨论】:

    标签: wcf web-services rest soap


    【解决方案1】:

    虽然,这个问题有几个很好的答案,只是投入我的 2 美分,尝试让新手 WCF vs SOAP vs REST-完整服务,以让他们更容易理解。

    我们感到困惑,WCF 是否同时支持 RESTSOAP 而且,通常我们只看到关于 SOAPREST。所以,我们需要来自微软的东西来让我们感受到真相:)所以这是来自 Microsoft MSDN 的截图:

    所以,是的,WCF 支持两者。

    在 OP 的上下文中:

    • SOAP 服务:
      在 WCF 编程模型中支持使用 Java 构建的系统之间的互操作性,其他 平台,以及使用受支持的消息传递标准的平台 由 Microsoft® 提供。它们还支持 HTTP 等传输, TCP、命名管道和 MSMQ。
    • Web HTTP 服务
      在 WCF 编程模型中支持 REST。 [来源:MSDN]

    【讨论】:

      【解决方案2】:

      WCF 不会自动成为 REST 或 SOAP,但您可以这样做。你需要的是一个教程:

      WCF

      http://www.codeproject.com/Articles/406096/A-beginners-tutorial-for-understanding-Windows

      休息

      http://rest.elkstein.org/

      还有一些其他有趣的东西:

      WCF - REST / SOAP

      https://msdn.microsoft.com/en-us/library/hh323708(v=vs.100).aspx

      WCF 和 REST

      https://msdn.microsoft.com/en-us/library/ee391967.aspx

      或者您可以自己进行 google/bing/metacrawler/altavista 搜索.....

      【讨论】:

      • 那么,WCF 是否真的是与 Web 服务技术分离的技术,而 Web 服务技术包括 REST 和 SOAP 作为变体?
      • 根据我的经验,WCF 是 Web 服务的代名词。在工作中,我们可能将其称为 WCF Web 服务。 WCF 的特点是它同时支持 REST 和 SOAP。 IT 仅取决于您如何对服务进行编码。 WCF 只是关于 ABC(地址、绑定、合同),在我提供的链接中解释得更好。
      • 只是为了检查 WCF 教程没有使用 SOAP 或 REST?
      • @JoshLeeDucks 老实说,我不确定。如果我不得不猜测我会说它可能使用 SOAP,但我必须运行实际代码并确定。这里要说明的是,WCF 不依赖于 SOAP 或 REST,它可以使用任何一个。我将在链接中添加我发现的有趣文章。
      【解决方案3】:

      WCF 是用于构建分布式系统的消息传递框架。分布式系统大部分只是 Web 服务的另一种说法。

      这意味着您可以用 C#(或任何 .NET 语言)编写方法,然后将一堆配置应用于代码,使其他人可以访问您的代码并将您的代码转换为 Web 服务。

      那些“一堆配置”是 WCF。如果您围绕 C# 代码设置 WCF 配置以将其公开为 RESTful 服务,WCF 允许您使用 REST 向其他计算机或应用程序公开您的方法。或者,您可以轻松地采用相同的 C# 方法并通过 SOAP 协议使它们可用。

      如果您有一个名为“GetData()”的方法,则可以设置 WCF 配置以使该方法在 IIS 中托管的服务中可用。当有人调用该服务时,他们可以向http://www.yourdomain.com/SomeService/GetData 发送 HTTP GET 请求,GetData 方法将接收到消息并返回响应。当您通过 HTTP 发出 GET 请求时,您使用的是 REST。 REST 与作为传输协议的 HTTP 非常相关。 REST 也没有标准的消息格式。无论您想在 HTTP 消息中发送什么,无论您想发送什么,都可以。您可以发送 XML、JSON 或纯文本。您也可以使用 POST、GET 或 PUT 或任何 HTTP 动词。

      使用 SOAP,您的消息可以使用任何传输协议发送到服务——您无需绑定到 HTTP。 SOAP 消息被设计为传输中立的。它们以 XML 编码,并且 XML 始终在信封节点内有一个头节点和一个主体节点。有很多围绕 SOAP 的 Web 标准——例如,将安全性、会话和其他特性放入消息头的标准。此外,使用 SOAP,您将获得一个 WSDL,我不会在这里解释它,但它使客户更容易对其进行编程。大多数编程语言都有一种获取 WSDL 并将其转换为强类型方法和对象的方法,以便您的服务易于调用。

      REST 在互联网上非常流行,并且与互联网一样具有可扩展性(即非常可扩展)。 SOAP 在企业对企业应用程序中非常流行。

      【讨论】:

      • 我认为你的回答是最好的
      • 数据通信早在互联网流行之前就已经存在,但年轻的开发人员描述了与互联网相关的数据通信(例如“分布式系统主要是 Web 服务的另一个词”)。分布式系统在互联网流行之前就已经存在,并且可以在没有互联网的情况下存在。我假设 WCF 不需要“网络”,如果是这样,那么这个描述是误导性的。
      • 派对有点晚了,但只是想澄清一下,肥皂并不总是有头脑,因为它是肥皂协议的可选内容。
      • 这个必须选为问题的答案。
      • 我同意这是更好的答案。我希望有一种方法可以让我开始投票或将其更改为接受的答案。
      【解决方案4】:

      来自MSDN

      WCF 编程模型提供了各种功能,例如 SOAP 服务、Web HTTP 服务、数据服务、富互联网应用 (RIA) 服务和工作流服务。 SOAP 服务支持 使用 Java 构建的系统之间的互操作性,其他 平台,以及使用受支持的消息传递标准的平台 由 Microsoft® 提供。 SOAP 服务还支持诸如 HTTP、 TCP、命名管道和 MSMQ。 Web HTTP 服务和数据服务 支持 REST。 Web HTTP 服务使您能够控制服务 位置、请求和响应、格式和协议。数据服务 使您能够将数据模型和数据驱动的逻辑公开为服务。 WCF 还包括两个编程模型:服务模型和 渠道模型。服务模型提供了一个框架来定义 数据合同、服务合同和服务行为。这个频道 模型支持指定格式、传输和协议。

      SOAP 和 REST 服务都可以为 Web 提供功能 应用程序,两者都可以用来交换信息 web的分布式环境。各有各的优点, 限制。

      【讨论】:

      • 这是一个重要的区别,其他帖子没有提到(尽管其他帖子同样重要):“SOAP 服务支持互操作性......”
      • (不得不发表另一条评论,因为 SO 不允许我在 5 分钟后进行编辑。):我想知道为什么会这样。 JAVA 服务不能使用基于 RESTful 的方法进行通信吗?
      猜你喜欢
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      • 2012-04-21
      • 2011-07-29
      • 1970-01-01
      • 2014-03-16
      • 2023-04-10
      相关资源
      最近更新 更多