📜  WebSockets-API

📅  最后修改于: 2020-10-17 05:56:22             🧑  作者: Mango


API –定义

API是应用程序接口的缩写,是用于构建软件应用程序的一组例程,协议和工具。

一些重要的功能是-

  • API指定了在对图形用户界面(GUI)组件进行编程时应如何交互软件组件以及应使用API。

  • 好的API可以通过提供所有构件来简化程序的开发。

  • REST通常在HTTP上运行,通常在移动应用程序,社交网站,mashup工具和自动化业务流程中使用。

  • REST风格强调通过有限数量的操作(动词)来增强客户端与服务之间的交互。

  • 通过分配资源来提供灵活性;他们自己的唯一通用资源标识符(URI)。

  • REST避免了歧义,因为每个动词都有特定的含义(GET,POST,PUT和DELETE)

Web套接字的优点

Web Socket一般解决了REST或HTTP的一些问题-

双向的

HTTP是一种单向协议,在此协议中,客户端始终会发起请求。服务器处理并返回响应,然后客户端使用它。 Web套接字是一种双向协议,其中没有预定义的消息模式,例如请求/响应。客户端或服务器都可以将消息发送给另一方。

全双工

HTTP允许请求消息从客户端发送到服务器,然后服务器将响应消息发送到客户端。在给定的时间,客户端正在与服务器对话,或者服务器正在与客户端对话。 Web套接字允许客户端和服务器彼此独立地进行交谈。

单TCP连接

通常,为HTTP请求启动一个新的TCP连接,并在收到响应后终止。需要为另一个HTTP请求/响应建立新的TCP连接。对于Web套接字,使用标准HTTP升级机制升级HTTP连接,并且客户端和服务器在Web套接字连接的生命周期中通过同一TCP连接进行通信。

下图给出了在有效载荷大小不变的情况下处理N条消息所花费的时间(以毫秒为单位)。

单连接

这是提供此图的原始数据-

恒定负载

上面给出的图形和表格表明,REST开销随着消息数量的增加而增加。之所以如此,是因为需要启动和终止许多TCP连接,并且需要发送和接收许多HTTP标头。

最后一列特别显示了满足REST请求的时间量的乘数。

第二张图显示了通过更改有效负载大小来处理固定数量的消息所需的时间。

Websocket休息

这是提供此图的原始数据-

常数

该图表明,处理REST端点的请求/响应的增量成本是最小的,并且大多数时间都花在了连接启动/终止和遵守HTTP语义上。

结论

Web套接字是一个低级协议。一切,包括一个简单的请求/响应设计模式,如何创建/更新/删除资源需求,状态码等,都将基于此构建。所有这些都是为HTTP定义的。

Web套接字是有状态协议,而HTTP是无状态协议。 Web套接字连接可以在单个服务器上垂直扩展,而HTTP可以水平扩展。对于Web套接字水平缩放,有一些专有的解决方案,但是它们不是基于标准的。 HTTP还具有许多其他优点,例如缓存,路由和多路复用。所有这些都需要在Web Socket上定义。