【问题标题】:When to utilize WSHttpBinding in compariosn with BasicHttpBinding与 BasicHttpBinding 相比,何时使用 WSHttpBinding
【发布时间】:2018-07-11 19:19:03
【问题描述】:

我刚刚开始使用 SOAP Web 服务,偶然发现了 WSHttpBinding 和 BasicHttpBinding。

我想根据以下用例了解两件事:

假设,有一个网络服务接受国家名称作为请求并返回状态列表作为响应。

根据我上面的简单用例,WSHttpBinding 或 BasicHttpBinding 的优缺点是什么?

【问题讨论】:

  • 这是在 Java 或 .Net 和 WCF ofortuna 的上下文中吗?
  • 它的 java 但基本上我正在寻找概念

标签: web-services wshttpbinding basichttpbinding


【解决方案1】:

引用WCF Soap Rest WSHTTPBinding

basicHttpBinding和wsHttpBinding的区别如下:

basicHttpBinding 是非常基本的绑定 - SOAP 1.1,在安全性方面不多,在功能方面也不多 - 但几乎与任何 SOAP 客户端兼容 --> 非常适合互操作性,但功能和安全性较弱

wsHttpBinding 是一个成熟的绑定,它支持大量的 WS-* 特性和标准——它有更多的安全特性,你可以使用会话连接,你可以使用可靠的消息传递,你可以使用事务控制——只是一个更多的东西,但 wsHttpBinding 也更“重”,并在消息通过网络传输时增加了很多开销

简单地说,WsHttpBinding 支持 WS-* 规范。 WS-* 规范是扩展 Web 服务功能的标准。另一个很大的不同是 Basic 默认以纯文本形式发送数据,其中 WS 支持安全和加密。

至于您的用例,如果您是一个非常注重安全的个人和编码人员,我们都应该努力做到这一点,并且您的国家和州的 Web 服务应该受到保护 - 使用 WSHTTPBinding 可能是个好主意,但恕我直言将您锁定在 WCF 和 .Net 中。如果您确实想走这条路并利用 WS 和 WCF,这篇 SO 文章解释了如何修改互操作的绑定设置wshttpbinding is only for .net clients?

【讨论】:

  • 所以如果我在 .net 中开发具有安全性的示例用例 Web 服务,那么我必须使用 wshttpbinding?如果我不使用任何额外的功能,那么我使用 basichttpbinding。如果我用 java 开发 web 服务,那么我不能使用 wshttpbinding 或基本的 HTTP 绑定。是这样吗?
  • 最初,如果 Web 服务在 .Net 中并且 Java 是消费者,您似乎必须使用 BasicHTTPBinding,但这似乎与 WSHTTPBinding is only for net clients 不同,您只需要编辑 wsHttpBinding->绑定-> 安全模式属性。关于第二个问题,是的,如果您不关心任何其他功能,请使用基本功能以减少开销。如果用 Java 做所有事情 - 那么你可以使用 WS-Security
  • 因此,如果我有一个 Java 客户端正在使用启用了 wshttpbinding 的 .net Web 服务,那么这是不可能的。是这样吗?
  • 如果您调整 wsHttpBinding->binding->security 模式属性,看起来确实有可能。可能在 web.xml/app.xml 文件中的 XML 元素
  • 感谢@Ofortuna 认为我的回答很有帮助!
猜你喜欢
  • 2011-01-07
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-15
  • 2013-06-17
  • 1970-01-01
相关资源
最近更新 更多