RESTful HTTP服务与直接TCP或WebSockets进行后端通信

时间:2014-12-17 19:06:48

标签: rest http tcp websocket restful-architecture

为什么RESTful HTTP服务现在甚至在后端通信中如此受欢迎,除了它是标准和简单的?

我永远不会为需要低延迟和/或高吞吐量的后端选择HTTP-REST,主要是因为:

  1. HTTP使用单向请求 - 响应范例,这不是全双工流式传输。
  2. HTTP意味着数据包长度和其他信息,这是一种开销。
  3. 我可以在许多开源项目中看到RESTful Web服务,声称它们具有低延迟,高吞吐量。例如,创建RESTful微服务非常流行,将轻量级http服务器嵌入到服务器端应用程序中。

    作为替代方案,我可以通过TCP使用WebSockets(当然通过HTTP升级)。

    我知道HTTP如何在引擎盖下工作以及下层TCP。但请解释一下,除了HTTP-REST是一个流行语和简单的原因,你应该使用其中一个,还有其他什么优势?

1 个答案:

答案 0 :(得分:7)

RESTful HTTP是一项成熟的技术,而WebSockets仅在2014年夏季成为W3C推荐。

一方面,新技术进入产品需要一些时间,因为人们不得不采用新技术,而且通常您也不想仅仅为了拥有WebSockets而重写产品。

另一方面,更重要的是,RESTful HTTP和WebSockets是完全不同的技术。 RESTful HTTP是无状态的,因此您可以构建高度可伸缩的应用程序。另一方面,WebSockets是双向的,因此终端,服务器和客户端都可以触发通信。所以最后你的决定应该基于这个场景。过去一直存在RESTful HTTP是完美解决方案的情况,今天仍然如此。另一方面,需要实时通信或服务器驱动事件的场景将从WebSockets中获益。

但重要的是:从现在开始你可以选择!