“WebSocket”和“REST API”之间有何不同

时间:2018-03-15 12:21:09

标签: rest websocket

当我获取或发布一些数据时,我总是使用REST API。 但是WebSocket也可以这样做。

所以,我对WebSocket和REST API之间的区别感到困惑 当我试图获取或发布一些数据时。

3 个答案:

答案 0 :(得分:6)

REST API使用HTTP作为通信的基础协议,后者又遵循请求和响应范例。但是,对于WebSockets,虽然通信仍然通过HTTP启动,但如果服务器和客户端都符合协议,则进一步提升为遵循WebSockets协议(并非所有实体都支持{ {3}}协议)。

现在使用WebSockets,可以在客户端和服务器之间建立全双工和持久连接。这意味着,与请求和响应不同,只要应用程序正在运行,连接就会保持打开状态,并且由于它是全双工,因此可以进行双向同时通信,即现在服务器能够启动通信并“推送”一些数据给客户。

这是实时技术中的主要概念用途,您可以在服务器推送的形式下获得新的更新,而客户端不必反复请求(刷新页面)。此类应用的示例包括优步汽车的位置跟踪,推送通知,实时更新的股市价格等。

这是我本月早些时候发布的关于websockets的演示文稿的视频,以及它们与使用常规REST API的不同之处:WebSockets

希望这能解决您的疑问!

答案 1 :(得分:3)

您可以为不同目的提供REST API以及WebSocket API。这取决于您的要求,这取决于您想要达到的目标。

例如,可以使用WebSocket API提供实时通知,而REST API可用于管理资源。

您应该了解一些细节:

  • REST是一种独立于协议的架构风格,经常通过HTTP协议实现,它应该是无状态的。
  • WebSocket是一种双向,全双工和持久连接协议,因此它是有状态的。

仅举一个提供不同API的应用程序示例:Stack Exchange提供REST APIWebSocket API

答案 2 :(得分:2)

我还没有完全理解REST API是什么,但我想你以更广泛的方式引用它,以便提供结构化数据的Web系统引用特定资源,可以是客户,或者通过http {/ p>进行POSTGET通话后的产品

与实际和简单方法的主要区别在于HTTP GET / POST是请求 - 响应协议。服务器将根据客户端发送的请求发送响应。

Websockets的情况下,通信是双向的。服务器或客户端可以随时向对方发送信息。

为了显示差异,如果使用HTTP GET,提供股票市场数据的页面将每隔X秒向服务器发出一个新请求以获取更新的价格。使用websockets,SERVER可以在新的价格发生变化后直接将新价格发送到Web浏览器。

您可能也有兴趣研究long polling这是一个与HTTP GET / POST一起使用的技术,以提供与Websockets类似的功能(尽管这是一个完全不同的东西)