我正在尝试理解WCF中标准绑定之间的区别。作为其中的一部分,我正在阅读深入了解WCF绑定。图2显示有些绑定的传输是HTTP,而有些是TCP。我感到困惑,因为我认为HTTP是一个应用层协议,而不是传输协议——HTTP运行在TCP之上。因此,通过称它为HTTP绑定,我们是否可以理解为它实际上是在TCP上运行的HTTP?
我正在尝试理解WCF中标准绑定之间的区别。作为其中的一部分,我正在阅读深入了解WCF绑定。图2显示有些绑定的传输是HTTP,而有些是TCP。我感到困惑,因为我认为HTTP是一个应用层协议,而不是传输协议——HTTP运行在TCP之上。因此,通过称它为HTTP绑定,我们是否可以理解为它实际上是在TCP上运行的HTTP?
所以称其为HTTP绑定,我们是否可以理解为它实际上是在TCP之上运行的HTTP?
没错,完全正确。但这是隐含的,因为HTTP是运行在TCP之上的。
二进制绑定(例如netTcpBinding
)直接运行在TCP上,它们不使用HTTP。
TCP/IP 包含 4 层:
application
transport
network
data link
您可以使用任何层,但 WCF 具有使用传输和应用层的绑定,例如 netTcpBinding
和 wsHttpBinding
TCP/IP 不同于 TCP 层
application layer protocols f.e.: HTTP, RTP, FTP, DNS
transport layer protocols f.e.: TCP, UDP, SCTP, DCCP
因此,HTTP 可以基于 UDP 协议,并且它将是 wsHttpBinding
,
或者如果您选择 TCP,则将是 netTcpBinding
,这一层位于 HTTP 以下,应用程序是冗余的。