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

问题描述 投票:6回答:1

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

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

  1. HTTP使用单向请求 - 响应范例,即不是全双工流。
  2. HTTP意味着数据包长度和其他信息,这是一种开销。

我可以在许多开源项目中看到RESTful Web服务,声称它们具有低延迟,高吞吐量。 例如,创建RESTful微服务非常流行,将轻量级http服务器嵌入到服务器端应用程序中。

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

我知道HTTP如何工作在底层以及下层TCP。 但请解释一下,除了HTTP-REST是一个流行语和简单之外,为什么你应该使用一个,任何其他优势?

rest http tcp websocket restful-architecture
1个回答
7
投票

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

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

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

但重要的是:从现在开始你有一个选择!

© www.soinside.com 2019 - 2024. All rights reserved.