Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF NetTCPBinding与HttpBinding在有线发送数据中的差异_Wcf_Wcf Binding_Nettcpbinding_Wshttpbinding_Basichttpbinding - Fatal编程技术网

WCF 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更高效(在这种情况下,我不需要互操作性)——开销在哪里 我认为在所有情况下,在将消息传输到网络上

假设我有一个公开两个端点的服务,第一个是NetTCPBinding,第二个是HttpBinding的任何风格。它们都执行完全相同的服务合同

通过电线发送的内容有什么区别

  • 使用netTcp我的消息是否仍然序列化为XML?还是我的对象的二进制表示
  • 就接收信息的内容而言,有什么区别?http端点是否只理解http命令(get/post等),而nettcp端点则理解不同的内容
  • 为什么nettcp比http更高效(在这种情况下,我不需要互操作性)——开销在哪里
我认为在所有情况下,在将消息传输到网络上之前,它都会被转换为二进制,因此http在网络方面也位于tcp之上,因此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时,必须同时执行这两项操作。