http/2 多路複用技術

雖然 HTTP 1.1 默認啓用長TCP鏈接,但全部的請求-響應都是按序進行的(這裏的長鏈接可理解成半雙工協議。即使是HTTP 1.1引入了管道機制,也是如此)。複用同一個TCP鏈接期間,即使是經過管道同時發送了多個請求,服務端也是按請求的順序依次給出響應的;而客戶端在未收到以前所發出全部請求的響應以前,將會阻塞後面的請求(排隊等待),這稱爲"隊頭堵塞"(Head-of-line blocking)。服務器

HTTP/2複用TCP鏈接則不一樣,雖然依然遵循請求-響應模式,但客戶端發送多個請求和服務端給出多個響應的順序不受限制,這樣既避免了"隊頭堵塞",又能更快獲取響應。在複用同一個TCP鏈接時,服務器同時(或前後)收到了A、B兩個請求,先回應A請求,但因爲處理過程很是耗時,因而就發送A請求已經處理好的部分, 接着迴應B請求,完成後,再發送A請求剩下的部分。HTTP/2長鏈接能夠理解成全雙工的協議。blog

相關文章
相關標籤/搜索