这可能是一个愚蠢的问题,然而,我一直对我在XMPP或HTML等协议中看到的每个解释中的差距感到沮丧。基本上,当我阅读任何一个文档时,一般来说,它将描述通过协议来回发送的数据的结构,但它并没有准确解释这些数据是如何传输的。提供一个例如通用HTTP请求的示例是一回事,但它还可以解释此文本实际发送到服务器的方式。
我想用另一种方式,那里有哪些资源用于学习实现基于文本的协议的最佳实践?在它们的核心,所有基于文本的协议基本上完全相同吗?例如,它在二进制级别上有何不同,我是说通过IRC发送HTTP请求的文本内容vs然而它是由HTTP本地完成的?
如果我想开发自己的简单文本协议,那么将文本发送给客户端的最佳方式是什么?内容本身是否真的重要?我的意思是,显然,HTTP和XMPP是相当不同的协议,但它们在计算机之间如何在计算机之间传输方面有所区别吗?
答案 0 :(得分:1)
HTTP,IRC和XMPP都在TCP之上发送,here是一种在两个端点(IP地址+端口)之间提供双向流的协议。在引擎盖下,您发送的数据被分成单独的数据包,通过网络发送,并在另一端重新组装,以便收件人只看到输入数据流 - 除非出现问题;有一些可访问的描述{{3}}。
这意味着虽然应用程序协议(HTTP,XMPP等)不同,但底层传输机制完全相同。在IRC之上实现HTTP是可能的(甚至可能是有趣的):HTTP / IRC客户端进入一个通道,将HTTP请求作为消息发送到通道,逐行,服务器存在于通道中,读取请求并以相同的方式发送响应 - 但通过IRC传输HTTP与通过TCP传输HTTP有根本的不同。前者意味着将应用程序协议分层到另一个应用程序协议上(并且IRC连接需要通过TCP),而后者是传输协议上的应用程序协议,这是通常的方式(除了各种类型的代理)。
希望有道理......