HTTP/2(原名HTTP 2.0)即超文本傳輸協議第二版,使用于萬維網,HTTP/2主要基于SPDY協議,通過對HTTP頭欄位進行資料壓縮、對資料傳輸采用多路復用和增加服務端推送等舉措,來減少網路延遲,提高客戶端的頁面加載速度,HTTP/2沒有改動HTTP的應用語意,仍然使用HTTP的請求方法、狀態碼和頭欄位等規則,它主要修改了HTTP的報文傳輸格式,通過引入二進制分幀實作性能的提升,
HTTP/2解決了什么問題?
HTTP是應用最廣泛、采用最多的一個互聯網應用協議,早期版本的HTTP協議實作簡單:HTTP/0.9只用一行協議就啟動了萬維網;HTTP/1.0則是對流行的HTTP/0.9擴展的一個正式說明;直到HTTP/1.1,IETF才發布可第一份官方標準,早期為了實作簡單是以犧牲應用性能為代價:HTTP/1.1客戶端需要使用多個連接才能實作并發和縮短延遲;HTTP/1.1不會壓縮請求頭欄位和回應頭欄位,從而產生不必要的網路流量;HTTP/1.1不支持有效的資源優先級,致使底層TCP連接的利用率低下等等,
隨著網路應用普及到人們的日常生活,它的應用范圍、復雜性、重要性也在不斷擴大,為了解決HTTP協議問題,HTTP/2應運而生,HTTP/2沒有改動HTTP的應用語意,仍然使用HTTP的請求方法、狀態碼和頭欄位等規則,它主要修改了HTTP的報文傳輸格式,通過引入二進制分幀層實作性能的提升,HTTP/2主要基于SPDY協議,通過對HTTP頭欄位進行首部壓縮、對資料傳輸采用多路復用和增加服務器推送等舉措,來減少網路延遲,提高客戶端的頁面加載速度,
HTTP/2 vs HTTP/1.1
高健壯性
HTTP/1.1,使用基于文本格式,文本表現形式多樣、場景多,健壯性不足,HTTP/2使用二進制格式,只有0和1的組合,選擇二進制傳輸,協議決議實作方便且健壯,
高性能
HTTP連接會隨著時間進行自我調節,起扯訓限制連接的最大速度,如果資料成功傳輸,會隨著時間的推移提高傳輸的速度,這種調節被稱為TCP慢啟動,這種調節讓具有突發性和短時性的HTTP連接變的十分低效,HTTP/2通過多路復用讓所有資料流使用同一個連接,有效使用TCP連接,讓高帶寬也能真正的服務于HTTP的性能提升,
HTTP/2在應用層和傳輸層之間增加了二進制分幀,突破了HTTP/1.1性能限制,改進傳輸性能,實作低延遲和高吞吐量,
網路開銷低
HTTP/2使用HPACK演算法來壓縮每次請求連接的頭欄位,降低了網路開銷,HPACK演算法可以減少需要傳輸的頭欄位大小,通訊雙方通過建立和維護頭欄位表,欄位表中使用長度較小的索引號表示重復的字串,在用Huffman編碼壓縮資料,既避免了重復頭欄位的傳輸,又減小了需要傳輸的大小,
HTTP/2有哪些關鍵特性?
二進制分幀
HTTP/2所有性能增強的核心在于新的二進制分幀層,如下圖所示,它是所有其他功能和性能優化的基礎,它定義了如何封裝HTTP訊息并在客戶端與服務器之間傳輸,
二進制分幀
HTTP/2沒有改動HTTP的應用語意,仍然使用HTTP的請求方法、狀態碼和頭欄位等規則,它主要修改了HTTP的報文傳輸格式,HTTP/1.1協議以換行符作為純文本的分隔符,而HTTP/2將所有傳輸的資訊分割為更小的訊息和幀,并采用二進制格式對它們編碼,這些幀對應著特定資料流中的訊息,他們都在一個TCP連接內復用,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/301253.html
標籤:其他
