RESTful HTTP服务与直接使用TCP或WebSockets进行后端通信的比较

8
为什么RESTful HTTP服务在后端通信中如此流行,除了它是标准和简单的原因之外?
我不会选择HTTP-REST作为需要低延迟和/或高吞吐量的后端,主要原因是:
1. HTTP使用单向请求-响应范例,而不是全双工流式传输。 2. HTTP涉及数据包长度和其他信息,这是一个额外负担。
我可以看到许多开源项目中使用RESTful web服务,声称它们用于低延迟、高吞吐量。例如,创建RESTful微服务,并将轻量级http服务器嵌入到服务器端应用程序中非常流行。
作为替代方案,我可以使用通过TCP的WebSockets(当然要通过HTTP升级)。
我知道HTTP在底层以及更低层的TCP是如何工作的。但请解释一下,除了HTTP-REST是一个时髦词汇并且简单易懂之外,还有什么其他优点?
1个回答

9

RESTful HTTP是一种已经成熟的技术,而WebSockets直到2014年夏季才成为W3C推荐的技术。

一方面,新技术需要时间才能被应用于产品中,因为人们需要适应新技术,往往也不愿意仅仅为了使用WebSockets而重写产品。

另一方面,更重要的是,RESTful HTTP和WebSockets是完全不同的技术。 RESTful HTTP是无状态的,因此您可以构建高度可扩展的应用程序。 另一方面,WebSockets是双向的,因此两端(服务器和客户端)都可以触发通信。 因此,最终您的决策应基于具体情况。 在过去,RESTful HTTP是完美的解决方案,今天它仍然是如此。 另一方面,需要实时通信或��务器驱动事件的情况将从WebSockets中受益。

但重要的是:从现在开始,您有选择的余地!


谢谢,我同意你的答案。只是,在后端层面应用HTTP-REST的想法让我感到困惑。 - Ivan Voroshilin
几乎任何系统都可以实现HTTP(服务器/客户端),这使得它在系统间通信方面非常出色。此外,大多数开发人员熟悉HTTP的“词汇”,这使得适配接口变得容易(而不是必须决定接口返回代码,HTTP RFC已经为您提供了!) - supertopi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接