天天看點

一文了解阿裡雲CDN HTTP2.0背景介紹HTTP2.0的特性如何使用HTTP2.0性能對比驗證HTTP2.0和SPDY的關系參考活動推薦

背景介紹

要了解HTTP2.0,先了解一下HTTP超文本傳輸協定的曆史(HyperText Transfer Protocol),這是為了實作網際網路上内容傳輸提出的協定,其曆史伴随着網際網路的發展。整個HTTP協定發展曆程如下:

一文了解阿裡雲CDN HTTP2.0背景介紹HTTP2.0的特性如何使用HTTP2.0性能對比驗證HTTP2.0和SPDY的關系參考活動推薦

一句話介紹:

HTTP 0.9:基于GET請求的文本傳輸協定

HTTPS:安全的HTTP傳輸協定

HTTP 1.0:增加HTTP頭、擴充PUT、POST等方法

HTTP 1.1:長連接配接、流水線支援,最廣泛使用的HTTP傳輸協定

SPDY:針對HTTP的增強,工作在SSL層之上、HTTP層之下

HTTP 2.0:安全高效的下一代HTTP傳輸協定

根據W3Techs統計,到現在為止,網際網路上前1000萬的網站,已經有27.9%支援了HTTP2.0。

HTTP2.0的特性

内容安全(Security),因為HTTP2.0是基于HTTPS的,天然具有安全特性,通過HTTP2.0的特性可以避免單純使用HTTPS的性能下降。

二進制格式(Binary Support),HTTP1.x的解析是基于文本。HTTP 2.0将所有的傳輸資訊分割為更小的消息和幀,并對它們采用二進制格式編碼,基于二進制可以讓協定有更多的擴充性,比如引入了幀來傳輸資料和指令。

多路複用(MultiPlexing),這個功能相當于是長連接配接的增強,每個request可以随機的混雜在一起,接收方可以根據request的id将request再歸屬到各自不同的服務端請求裡面。另外多路複用中,也支援了流的優先級(Stream dependencies),允許用戶端告訴server哪些内容是更優先級的資源,可以優先傳輸。

一文了解阿裡雲CDN HTTP2.0背景介紹HTTP2.0的特性如何使用HTTP2.0性能對比驗證HTTP2.0和SPDY的關系參考活動推薦

Header壓縮(Header compression),HTTP請求中header帶有大量資訊,而且每次都要重複發送,HTTP2.0使用編解碼來header的傳輸,通訊雙方各自cache一份header fields表,減少header的開銷。

服務端推送(Server push),同SPDY一樣,HTTP2.0也具有server push功能。目前,有大多數網站已經啟用HTTP2.0,如淘寶 利用chrome控制台可以檢視是否啟用HTTP2.0:chrome://net-internals/#http2 可以看到目前頁面使用HTTP2.0的情況:

一文了解阿裡雲CDN HTTP2.0背景介紹HTTP2.0的特性如何使用HTTP2.0性能對比驗證HTTP2.0和SPDY的關系參考活動推薦

如何使用HTTP2.0

目前阿裡雲CDN已經全面支援HTTP2.0,大部分主流浏覽器也已經支援該功能,但是需要服務端改造後才能使用,不過如果你使用了阿裡雲CDN,源站即便不支援也能夠享受HTTP2.0的特性,目前在官網可以自助開啟:

1、 開啟HTTPS證書 因為HTTP2.0是依賴于HTTPS的,在控制台開啟HTTP2.0需要提前開啟HTTPS,目前阿裡雲CDN已經支援免費證書功能,提前打開該功能即可:

一文了解阿裡雲CDN HTTP2.0背景介紹HTTP2.0的特性如何使用HTTP2.0性能對比驗證HTTP2.0和SPDY的關系參考活動推薦

2、 開啟HTTP2.0功能:

一文了解阿裡雲CDN HTTP2.0背景介紹HTTP2.0的特性如何使用HTTP2.0性能對比驗證HTTP2.0和SPDY的關系參考活動推薦

性能對比驗證

目前我們提供了一個對比測試工具,可以比較直覺的看出來HTTP1.1和HTTP2.0的加載頁面的差異,針對180個小圖檔,HTTP2.0顯示了強大的優勢,而且越是弱網環境,其加速效果就更明顯:

一文了解阿裡雲CDN HTTP2.0背景介紹HTTP2.0的特性如何使用HTTP2.0性能對比驗證HTTP2.0和SPDY的關系參考活動推薦

小夥伴也可以通過下面頁面,自己體驗本地使用HTTP2.0和HTTP1.1的對比效果:

https://http2.cdnpe.com/index.html

HTTP2.0和SPDY的關系

SPDY是Google提出的用來解決老的HTTP協定不足的一些新的方案,可以說是綜合了HTTPS和HTTP兩者優點并加以改進的傳輸協定。實踐證明SPDY解決了HTTP的一些頑疾,在性能上提升顯著,最終IETF(Internet Enginerring Task Force)正式考慮制定HTTP2.0的計劃,最後決定以SPDY為基礎起草HTTP2.0,SPDY的部分設計人員也被邀請參與了HTTP2.0的設計。

Google的測試表明,頁面加載時間相比于HTTP1.x減少了64%:

一文了解阿裡雲CDN HTTP2.0背景介紹HTTP2.0的特性如何使用HTTP2.0性能對比驗證HTTP2.0和SPDY的關系參考活動推薦

參考

HTTP0.9:

https://www.w3.org/Protocols/HTTP/AsImplemented.html

HTTP1.0:

https://tools.ietf.org/html/rfc1945

HTTP1.1:

https://tools.ietf.org/html/rfc2616

HTTP2.0:

https://tools.ietf.org/html/rfc7540

Wiki:

https://en.wikipedia.org/wiki/HTTP/2

Golang http2:

http://http2.golang.org/gophertiles Learning HTTP/2: A Practical Guide for Beginners

活動推薦

【TechDay】阿裡雲CDN Tengine開源技術沙龍-上海站,将在8月29日下午阿裡虹橋中心展開,多位專家現場探讨CDN QUIC、TLSv1.3、直播、Tengine實踐等話題,參與活動即可赢取阿裡雲定制禮品,點選了解活動詳情與報名:

https://yq.aliyun.com/event/359

繼續閱讀