BasicHttpBinding与WsHttpBinding与WebHttpBinding


297

在WCF中,有几种不同类型的基于HTTP的绑定:

这3个有什么区别?

特别是在功能/性能和兼容性方面有什么区别?


44
[BasicHttpBinding = Soap 1.1],[WsHttpBinding = Soap 1.2],[WebHttpBinding = Rest]
Frank Myat

这里是两个基于SOAP的绑定的比较:basicHttpBinding与wsHttpBinding
DavidRR 2015年

Answers:


518

您在这里比较苹果和橙子:

  • webHttpBinding是REST样式的绑定,您基本上只需单击URL并从Web服务中获取大量XML或JSON

  • basicHttpBindingwsHttpBinding是两个基于SOAP的绑定,与REST完全不同。SOAP的优点是可以使用WSDL和XSD来详细描述服务,其方法以及所传递的数据(REST还没有类似的东西)。另一方面,您不能只使用浏览器浏览到wsHttpBinding端点并查看XML-您必须使用SOAP客户端,例如WcfTestClient或您自己的应用程序。

因此,您的第一个决定必须是:REST vs. SOAP(或者您也可以从服务中公开两种类型的端点-也可以)。

然后,在basicHttpBinding和wsHttpBinding之间,存在以下差异:

  • basicHttpBinding是非常基本的绑定-SOAP 1.1,在安全性方面没有多大的限制,在功能方面没有太多的其他限制-但与那里的任何SOAP客户端兼容->互操作性很好,功能和安全性较弱

  • wsHttpBinding是成熟的绑定,它支持大量的WS- *功能和标准-它具有更多的安全性功能,可以使用会话连接,可以使用可靠的消息传递,可以使用事务控制-只是更多的东西,但是wsHttpBinding也“繁重”,并且在您的邮件通过网络传播时增加了很多开销

有关两者之间的深入比较(包括表和代码示例),请查看此代码项目文章:BasicHttpBinding和WsHttpBinding之间的差异


1
亲爱的,我在这里不做任何决定,我只是想知道区别,您必须知道橙子和苹果的味道是什么,这就是为什么我问这个问题。在功能比较和性能方面,我需要更多有关WebHttpBinding的信息
Mubashar 2010年

看看谷歌或必应,搜索“REST与SOAP” - 荷载的信息有!
marc_s 2010年

4
一种更正:wsHttpBinding不支持流传输。还是我错过了什么?msdn.microsoft.com/en-us/library/ms730879.aspx
Andrew Shepherd 2010年

1
@Andrew Shepherd:感谢您的链接和更正-您说的很对,wsHttpBinding不支持流式传输..
marc_s

@EduardoLeónREST的租户之一就是利用HTTP内置的功能。身份验证内置于HTTP中,因此您可以使用所需的任何类型的身份验证提供程序。这可能是那样简单Basic或NTLM,或者你可以做一些更先进的它利用的OAuth / STS令牌等
BrainSlugs83
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.