多路復用是 http/2 的一個很酷的特性。它允許使用一個連接同時為來自單個客戶端的多個請求提供服務。
我的問題是:這個多路復用功能是否違反了 REST API 規則?
- 我知道 REST API 強制執行請求-回應架構,但是在沒有啟用服務器推送(流)功能的情況下進行多路復用本質上是一個請求 - > 一個回應范式,所以這不是違規,對嗎?
- REST API 也強制執行無狀態,我迷路了:通過單個連接進行多路復用被視為有狀態還是無狀態?
如果我想升級當前使用 HTTP/1.1 實作的 REST API 以使用 HTTP/2,我是否有權使用多路復用功能,或者我必須逐個流(req1, res1, req2, res2. ..)?
uj5u.com熱心網友回復:
網路多路復用和 REST API 是兩個完全不同的事務/責任層。
多路復用是關于通信信號如何流動,而不是關于 HTTP 訊息通信的架構模式是什么(這就是 REST 的全部內容)。
從靜止的角度來看,它并沒有關系:
- 您是否在多個請求-回應周期中保持單個物理 (TCP) 連接;
- 您打開和關閉每個 HTTP 請求回應的 TCP 連接,或
- 即使您使用 TCP 以外的其他東西(是的,這不是一個好主意,但理論上,只要確保通信具有完整性、一致性和穩定性(這是 TCP 帶來的所有內容),物理上如何連接建立)。
REST 是一種用于實作 Web 應用程式的架構(Web 應用程式的設計)模式。
因此,一個(多路復用)是物理連接的建立方式,另一個(REST)是您設計 Web 應用程式的方式。只要 HTTP 訊息無縫流動,多路復用就不會違反 REST 中的任何內容。再說一遍:這兩者有不同的用途。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/393812.html
上一篇:找不到Pod模塊抖動
