【发布时间】:2022-01-26 01:36:56
【问题描述】:
多路复用是 http/2 的一个非常酷的特性。它允许使用一个连接同时处理来自单个客户端的多个请求。
我的问题是:这个多路复用功能是否违反了 REST API 规则?
- 我了解 REST API 强制执行请求-响应架构,但未启用服务器推送(流式传输)功能的多路复用本质上是一个请求 -> 一个响应范例,所以这不是违规,对吗?
- REST API 也强制执行无状态,我迷路了:通过单个连接进行多路复用被视为有状态还是无状态?
如果我想升级当前使用 HTTP/1.1 实现的 REST API 以使用 HTTP/2,我是否有权使用多路复用功能,或者我必须在流之后进行流(req1、res1、req2 , res2...)?
【问题讨论】:
-
只要每个 REST 端点调用在逻辑上仍然表现为请求-响应并且从 REST 角度来看是无状态的,传输协议的细节就无关紧要。