【问题标题】:RESTful HTTP services vs direct TCP or WebSockets for back-end communication用于后端通信的 RESTful HTTP 服务与直接 TCP 或 WebSockets
【发布时间】:2015-02-16 10:29:25
【问题描述】:

为什么 RESTful HTTP 服务即使在现在的后端通信中也如此流行,除了它是一种标准且简单的服务?

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

  1. HTTP 使用单向请求-响应范例,而不是全双工流式传输。
  2. HTTP 暗示数据包长度和其他信息,这是一种开销。

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

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

我知道 HTTP 以及底层 TCP 是如何工作的。但是请解释一下,除了 HTTP-REST 是一个流行词而且很简单这就是为什么你应该使用它之外,还有其他优点吗?

【问题讨论】:

    标签: rest http tcp websocket restful-architecture


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢,我同意你的回答。只是,即使在后端应用 HTTP-REST 的想法也让我感到困惑。
    • 几乎可以在任何系统中实现 HTTP(服务器/客户端)。这使其在系统间通信方面表现出色。此外,大多数开发人员都熟悉 HTTP“词汇表”,这使得适配接口变得容易(不必决定接口返回代码,HTTP RFC 为您提供了它们!)
    猜你喜欢
    • 2015-08-19
    • 2023-03-18
    • 2017-07-16
    • 1970-01-01
    • 2021-06-22
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多