HTTP/2 多路复用是否违反 REST API 规则?
Does HTTP/2 multiplexing violate REST API rules?
多路复用是 http/2 的一项非常酷的功能。它允许使用一个连接同时处理来自单个客户端的多个请求。
我的问题是:此多路复用功能是否违反了 REST API 规则?
- 我知道 REST API 强制执行请求-响应架构,但是没有启用服务器推送(流)功能的多路复用本质上是一个请求 -> 一个响应范式,所以这不是违规,对吗?
- REST API 也强制执行无状态,我在那里迷路了:通过单个连接的多路复用被认为是有状态的还是无状态的?
如果我想将当前使用 HTTP/1.1 实现的 REST API 升级为使用 HTTP/2,我是否有权使用多路复用功能,或者我必须一个接一个地执行流(req1、res1、req2、res2...)?
网络多路复用和RESTAPI是两种完全不同的matters/layers职责。
多路复用是关于通信信号如何流动,而不是关于什么是 HTTP 消息通信的架构模式(这就是 REST 的全部内容)。
从 REST 的角度来看,不重要:
- 电信号如何在有线或无线中流动;
- 您使用什么类型的电缆或其他物理方式传输数据;
- 即使您在多个请求-响应周期中保持单个物理 (TCP) 连接,或者您在每个 HTTP 请求-响应中打开和关闭 TCP 连接;
- 即使你使用TCP之外的东西(是的,这不是一个好主意,但理论上,只要保证通信具有完整性、一致性和稳定性(这都是TCP带来的),它不会物理连接的建立方式很重要)。
因为,
REST 是一种用于实现 Web 应用程序的架构(Web 应用程序的设计)模式。
多路复用是指如何实现物理 signals/connection。
只要 HTTP 消息在客户端和服务器之间无缝流动,物理层或传输层就与 REST 端点无关;因此,多路复用中没有任何东西可以违反 REST 中的任何内容,因为 - 再一次:这两个用于完全不同的目的。
多路复用是 http/2 的一项非常酷的功能。它允许使用一个连接同时处理来自单个客户端的多个请求。
我的问题是:此多路复用功能是否违反了 REST API 规则?
- 我知道 REST API 强制执行请求-响应架构,但是没有启用服务器推送(流)功能的多路复用本质上是一个请求 -> 一个响应范式,所以这不是违规,对吗?
- REST API 也强制执行无状态,我在那里迷路了:通过单个连接的多路复用被认为是有状态的还是无状态的?
如果我想将当前使用 HTTP/1.1 实现的 REST API 升级为使用 HTTP/2,我是否有权使用多路复用功能,或者我必须一个接一个地执行流(req1、res1、req2、res2...)?
网络多路复用和RESTAPI是两种完全不同的matters/layers职责。
多路复用是关于通信信号如何流动,而不是关于什么是 HTTP 消息通信的架构模式(这就是 REST 的全部内容)。
从 REST 的角度来看,不重要:
- 电信号如何在有线或无线中流动;
- 您使用什么类型的电缆或其他物理方式传输数据;
- 即使您在多个请求-响应周期中保持单个物理 (TCP) 连接,或者您在每个 HTTP 请求-响应中打开和关闭 TCP 连接;
- 即使你使用TCP之外的东西(是的,这不是一个好主意,但理论上,只要保证通信具有完整性、一致性和稳定性(这都是TCP带来的),它不会物理连接的建立方式很重要)。
因为,
REST 是一种用于实现 Web 应用程序的架构(Web 应用程序的设计)模式。
多路复用是指如何实现物理 signals/connection。
只要 HTTP 消息在客户端和服务器之间无缝流动,物理层或传输层就与 REST 端点无关;因此,多路复用中没有任何东西可以违反 REST 中的任何内容,因为 - 再一次:这两个用于完全不同的目的。