WCF NetTCPBinding与HttpBinding在有线发送数据中的差异
假设我有一个公开两个端点的服务,第一个是NetTCPBinding,第二个是HttpBinding的任何风格。它们都执行完全相同的服务合同 通过电线发送的内容有什么区别WCF NetTCPBinding与HttpBinding在有线发送数据中的差异,wcf,wcf-binding,nettcpbinding,wshttpbinding,basichttpbinding,Wcf,Wcf Binding,Nettcpbinding,Wshttpbinding,Basichttpbinding,假设我有一个公开两个端点的服务,第一个是NetTCPBinding,第二个是HttpBinding的任何风格。它们都执行完全相同的服务合同 通过电线发送的内容有什么区别 使用netTcp我的消息是否仍然序列化为XML?还是我的对象的二进制表示 就接收信息的内容而言,有什么区别?http端点是否只理解http命令(get/post等),而nettcp端点则理解不同的内容 为什么nettcp比http更高效(在这种情况下,我不需要互操作性)——开销在哪里 我认为在所有情况下,在将消息传输到网络上
- 使用netTcp我的消息是否仍然序列化为XML?还是我的对象的二进制表示
- 就接收信息的内容而言,有什么区别?http端点是否只理解http命令(get/post等),而nettcp端点则理解不同的内容
- 为什么nettcp比http更高效(在这种情况下,我不需要互操作性)——开销在哪里
请注意,这个问题有点模糊,但希望有人知道我想问什么:)在WCF中,特定的绑定不一定意味着特定的编码。可以将各种绑定配置为使用各种编码。TCP默认使用二进制编码(我认为是MTOM),HTTP默认使用文本/xml编码 使用net.tcp,您的消息将转到发送者->net.tcp->接收者。使用HTTP,它们从发送方->HTTP->tcp->HTTP->接收方开始。还有一层。tcp的优点是:额外的层和默认编码 采用二进制编码的HTTP接近net.tcp性能
编辑:事实上,我认为Net.TCP中可能还有其他优化。这是一个WCF-WCF通信场景,因此MS可以控制两端。干杯。但是http部分对消息做了什么?将其封装在某种http容器中?使用http时,存在一种与web浏览器和web服务器之间的协商非常类似的协商:建立TCP连接,客户端发送动词、URL,以及可选的标题和正文。服务器用一个状态、一个标题块和一个正文(如果成功)进行响应。TCP本身也进行类似的“握手”(尽管协议不同)。使用HTTP时,必须同时执行这两项操作。