当我获取或发布一些数据时,我总是使用REST API。 但是WebSocket也可以这样做。
所以,我对WebSocket和REST API之间的区别感到困惑 当我试图获取或发布一些数据时。
答案 0 :(得分:6)
REST API使用HTTP作为通信的基础协议,后者又遵循请求和响应范例。但是,对于WebSockets,虽然通信仍然通过HTTP启动,但如果服务器和客户端都符合协议,则进一步提升为遵循WebSockets协议(并非所有实体都支持{ {3}}协议)。
现在使用WebSockets,可以在客户端和服务器之间建立全双工和持久连接。这意味着,与请求和响应不同,只要应用程序正在运行,连接就会保持打开状态,并且由于它是全双工,因此可以进行双向同时通信,即现在服务器能够启动通信并“推送”一些数据给客户。
这是实时技术中的主要概念用途,您可以在服务器推送的形式下获得新的更新,而客户端不必反复请求(刷新页面)。此类应用的示例包括优步汽车的位置跟踪,推送通知,实时更新的股市价格等。
这是我本月早些时候发布的关于websockets的演示文稿的视频,以及它们与使用常规REST API的不同之处:WebSockets
希望这能解决您的疑问!
答案 1 :(得分:3)
您可以为不同目的提供REST API以及WebSocket API。这取决于您的要求,这取决于您想要达到的目标。
例如,可以使用WebSocket API提供实时通知,而REST API可用于管理资源。
您应该了解一些细节:
仅举一个提供不同API的应用程序示例:Stack Exchange提供REST API和WebSocket API。
答案 2 :(得分:2)
我还没有完全理解REST API是什么,但我想你以更广泛的方式引用它,以便提供结构化数据的Web系统引用特定资源,可以是客户,或者通过http {/ p>进行POST
或GET
通话后的产品
与实际和简单方法的主要区别在于HTTP
GET
/ POST
是请求 - 响应协议。服务器将根据客户端发送的请求发送响应。
在Websockets
的情况下,通信是双向的。服务器或客户端可以随时向对方发送信息。
为了显示差异,如果使用HTTP
GET
,提供股票市场数据的页面将每隔X秒向服务器发出一个新请求以获取更新的价格。使用websockets,SERVER可以在新的价格发生变化后直接将新价格发送到Web浏览器。
您可能也有兴趣研究long polling
这是一个与HTTP GET / POST一起使用的技术,以提供与Websockets类似的功能(尽管这是一个完全不同的东西)