前情提要
在上一篇文章《【HTTP 2.0】 序言》中,我們簡要介紹了 HTTP 2 協議的概要和協議狀態。
在本篇文章中,我們將會了解到 HTTP 2 協議簡介(Introduction)部分的內容。
簡介(Introduction)
超文本傳輸協議(HTTP)是一個非常成功的協議。然而,HTTP 1.1 所使用的底層傳輸([RFC7230, 第六節]),對現代的應用程序性能帶來了一些負面作用。
尤其是在 HTTP 1.0 中,在一個 TCP 連接中,只允許處理一個請求。 HTTP 1.1 增加了請求流水線,但這只是局部解決了請求并發問題,仍然會受到隊首阻塞的影響。因此,在 HTTP 1.0 和 HTTP 1.1 中,客戶端需要創建多個連接,才能實現并發請求以降低等待時間。
此外,HTTP 報頭字段通常是重復的、冗長的,這造成了不必要的網絡流量開銷,以及初始?TCP?阻塞窗口快速填滿。在一個 TCP 連接上進行多個請求時,可能導致延遲過高的問題。
HTTP 2 在底層連接中,通過定義一個經過優化的 HTTP 語義映射表,來解決這個問題。具體來說,它允許在同一連接上交叉使用請求和響應消息,并使用一個高效率的報頭字段編碼。它還允許設置請求的優先級次序,讓重要的請求更快的完成,進一步提升性能。
新的協議對網絡連接更加友好,相較于 HTTP 1.x,可以減少 TCP 連接的個數。這意味著,減少了與其他流和長連接之間的競爭,從而帶來了更好的網絡利用能力。
最后,HTTP 2 通過使用二進制消息幀,進一步提升了消息處理性能。
本文以?CC BY-NC-SA 3.0 CN?協議共享,轉載、共享及二次創作時請保留原文出處及鏈接,請勿用于商業用途。
本文鏈接:http://litecodes.com/dev/http-2-spec-introduction/
本系列文章將會在我的?GitBook:http2-spec-zh?同步更新,
下一篇文章將會翻譯協議的第二部分:HTTP/2 Protocol Overview(HTTP 2 協議概覽),不要錯過喲~