BasicHttpBinding与WsHttpBinding与WebHttpBinding

在WCF中有几种不同types的基于HTTP的绑定:

  • basicHttpBinding的
  • WsHttpBinding的
  • 的WebHttpBinding

这三个之间有什么区别?

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

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

  • webHttpBinding是REST风格的绑定,你基本上只是打一个URL,从Web服务中取回一大堆XML或JSON

  • basicHttpBindingwsHttpBinding是两个基于SOAP的绑定,与REST完全不同。 SOAP具有使WSDL和XSD能够详细描述服务,方法和数据的优点(REST还没有类似的东西)。 另一方面,你不能仅仅通过浏览器浏览wsHttpBinding端点,而是看看XML – 你必须使用SOAP客户端,例如WcfTestClient或者你自己的应用程序。

所以你的第一个决定必须是:REST与SOAP(或者你可以从你的服务中暴露两种types的端点 – 这也是可能的)。

然后,在basicHttpBinding和wsHttpBinding之间,有如下差异:

  • basicHttpBinding是非常基本的绑定 – SOAP 1.1,在安全性方面没有太多的function,在function方面没有太多其他function,但是与任何SOAP客户端都兼容 – >对于互操作性,function和安全性较差

  • wsHttpBinding是全面的绑定,它支持大量的WS- *function和标准 – 它有更多的安全function,可以使用会话连接,可以使用可靠的消息传递,可以使用事务控制 – 只是更多的东西,但是wsHttpBinding也是很多“重”,并且当你的消息在networking上传输时,会给你的消息增加很多开销

两者之间的深入比较(包括表和代码示例)检查此代码项目文章: BasicHttpBinding和WsHttpBinding之间的区别