1

我是网络世界的新手,因此对幕后的工作方式有些困惑。这对我决定为我的服务选择哪个绑定很重要。我的印象是网络上的通信主要通过 TCP/IP 协议进行。我通过了 TCP/IP 协议,根据我的理解,HTTP 是一个应用层协议。在幕后,应用层与传输层通信,传输层使用 TCP 或 UDP 协议在网络上传递信息。如果是这种情况,那么 HTTP 协议的用途是什么?我确定拼图中缺少某些东西,但我无法找出它是什么?

4

2 回答 2

0

WCF 支持 4 种传输协议 - HTTP、TCP、MSMQ 和命名管道。

建议阅读MSDN 杂志文章和此MSDN帖子以进一步了解。

于 2012-08-31T17:02:36.817 回答
0

首先,W3C 回答了为什么要使用新协议?早在 1991 年。虽然他们基本上说它不是邮件、文件传输、新闻或搜索。

不过,我有一种感觉,您的问题是为什么要使用 wsHttpBinding,因为无论如何,它下面都是 TCP。Microsoft 的 netTCPBinding 是 Microsoft 专有协议。它旨在在 C# 位于管道的两端时使用,此外,它主要针对两端的开发将由单个实体管理时,无论是单个开发人员、团队还是企业集团。因为获得正确的数据类型可能很棘手。在NetTcpBinding 类的备注中我们发现:

此绑定是适当的 Windows Communication Foundation (WCF) 系统为通过 Intranet 进行通信提供的选择。

NetTcpBinding 的默认配置比 WSHttpBinding 提供的配置更快,但它仅适用于 WCF 到 WCF 通信。

相比之下,wsHttpBinding 的设计考虑了互操作性。它至少在某种程度上符合现有的 Web 服务标准。从WSHttpBinding 类的备注中:

WSHttpBinding 与 BasicHttpBinding 类似,但提供了更多的 Web 服务功能。它使用 HTTP 传输并提供消息安全性,就像 BasicHttpBinding 一样,但它还提供事务、可靠消息传递和 WS-Addressing,默认情况下启用或通过单个控件设置可用。

列出的大多数附加功能都是现代SOAP堆栈的一部分。

最后,对于那些想发明他们的协议的人,这篇文章回答了为什么[你应该使用] HTTP?反而。

于 2013-02-22T15:27:45.207 回答