wcf - WCF、Rest 和 SOAP 之间是什么关系?

标签 wcf web-services rest soap

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

最佳答案

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

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

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

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

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

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

关于wcf - WCF、Rest 和 SOAP 之间是什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15127262/

相关文章:

WCF BasicHttpBinding + 用户名密码验证器+x.509

c# - Web 服务/wcf 服务,返回数据集是否更好?

Silverlight 在对象图中使用循环序列化对象

wcf 服务返回 "method not allowed"错误

没有 WCF 的 C# SOAP 服务

java - 从 java ws 返回复杂类型

php - 如何使用由iphone应用程序发送的时区将时间戳存储在mysql数据库中

java - 每次调用webservice之前我们需要生成token id吗

PHP rest api如何返回文件或下载

java - 如何在没有返回类型或回调的情况下执行 DELETE 请求? [ retrofit ]