【问题标题】:How do XMPP/HTML/etc. *really* work?XMPP/HTML/等如何做。 *真的*工作?
【发布时间】:2014-05-09 11:00:26
【问题描述】:

这可能是一个愚蠢的问题,但是,我一直对我所看到的关于 XMPP 或 HTML 等协议的每一个解释中似乎存在巨大差距感到沮丧。所以基本上,当我阅读任何一个文档时,一般来说,它会描述通过协议来回发送的数据的结构,但它并没有准确地解释这些数据是如何传输的。提供一个通用 HTTP 请求的示例是一回事,但解释该文本是如何实际发送到服务器的则是另一回事。

我猜是另一种方式,有哪些资源可以学习实施基于文本的协议的最佳实践?从本质上讲,所有基于文本的协议都基本上是一回事吗?例如,在二进制级别上会有什么不同,我是说通过 IRC 发送 HTTP 请求的文本内容还是通过 HTTP 本地完成?

如果我想开发自己的简单文本协议,将文本发送给客户的最佳方式是什么?内容本身真的很重要吗?我的意思是,很明显,HTTP 和 XMPP 是完全不同的协议,但是它们在文本在计算机之间传输的方式方面有区别吗?

【问题讨论】:

    标签: http tcp xmpp


    【解决方案1】:

    HTTP、IRC 和 XMPP 都在 TCP 之上发送,这是一种在两个端点(IP 地址 + 端口)之间提供双向流的协议。在幕后,您发送的数据被拆分成单独的数据包,通过网络发送,然后在另一端重新组合,这样接收者只会看到传入的数据流——除非出现问题;有一个比较容易理解的描述here

    这意味着虽然应用程序协议(HTTP、XMPP 等)不同,但底层传输机制完全相同。在 IRC 之上实现 HTTP 是可能的(甚至可能很有趣):一个 HTTP/IRC 客户端进入一个通道,将 HTTP 请求作为消息逐行发送到通道,一个服务器存在于通道中,读取请求和发送响应的方式相同——但是通过 IRC 传输 HTTP 与通过 TCP 传输 HTTP 根本不同。前者意味着将一个应用协议分层在另一个应用协议之上(并且 IRC 连接无论如何都需要通过 TCP),而后者是一个应用协议在一个传输协议之上,这是通常的处理方式(除了各种代理)。

    希望这有点道理......

    【讨论】:

      猜你喜欢
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 1970-01-01
      • 2013-04-04
      • 2013-01-06
      • 2013-03-13
      相关资源
      最近更新 更多