API,应用程序接口的缩写,是一组用于构建软件应用程序的例程,协议和工具.
一些重要的功能是 :
API指定软件组件应如何交互,以及在编程图形时应使用API用户界面(GUI)组件.
一个好的API可以通过提供所有构建块来更容易地开发程序.
通常在HTTP上运行的REST通常用于移动应用程序,社交网站,mashup工具和自动化业务流程.
REST风格强调通过有限数量的操作(动词)来增强客户端和服务之间的交互.
通过分配提供灵活性资源;他们自己独特的统一资源标识符(URI).
REST避免歧义,因为每个动词都有特定含义(GET,POST,PUT和DELETE)
Web Socket解决了REST的一些问题,或者一般的HTTP :
HTTP是一种单向协议,客户端始终发起请求.服务器处理并返回响应,然后客户端使用它. Web Socket是一种双向协议,其中没有预定义的消息模式,例如请求/响应.客户端或服务器可以向另一方发送消息.
HTTP允许请求消息从客户端发送到服务器然后服务器向客户端发送响应消息.在给定时间,客户端正在与服务器通信,或者服务器正在与客户端通信. Web Socket允许客户端和服务器相互独立通信.
通常,为一个新的TCP连接启动HTTP请求并在收到响应后终止.需要为另一个HTTP请求/响应建立新的TCP连接.对于Web Socket,使用标准HTTP升级机制升级HTTP连接,并且客户端和服务器通过相同的TCP连接进行通信以进行Web Socket连接的生命周期.
下面给出的图表显示处理N个消息所需的时间(以毫秒为单位).
以下是提供此图表的原始数据 :
上面给出的图表和表格显示REST开销随着消息数量的增加而增加.这是真的,因为需要启动和终止许多TCP连接,并且需要发送和接收许多HTTP头.
最后一列特别显示了时间量的倍增因子履行REST请求.
第二个图显示了通过改变有效载荷大小来处理固定数量的消息所花费的时间.
以下是提供此图表的原始数据 :
此图表显示处理REST端点的请求/响应的增量成本很小且大部分是花在连接启动/终止和尊重HTTP语义上的时间.
Web Socket是一种低级协议.一切,包括简单的请求/响应设计模式,如何创建/更新/删除资源需求,状态代码等都要建立在它之上.所有这些都为HTTP定义良好.
Web Socket是一种有状态协议,而HTTP是无状态协议. Web套接字连接可以在单个服务器上垂直扩展,而HTTP可以水平扩展. Web Socket水平扩展有一些专有解决方案,但它们不是基于标准. HTTP附带了许多其他好东西,如缓存,路由和多路复用.所有这些都需要在Web Socket上定义.