擁抱HTTP2.0時代 - HTTP2.0實現服務器端推送Push功能


 

在當今的移動互聯開發趨勢中,nghttp2是一個很值得大家去關注的一個開源項目。 

我們在nghttpx模塊中實現了HTTP/2服務器推送功能,並且在我們的nghttp2.org網站中啟用了該推送功能。當你通過HTTP/2協議訪問 https://nghttp2.org網站時,CSS文件/stylesheets/screen.css就會被推送到客戶端。
nghttp2 blog

當你通過網絡瀏覽器的調試功能觀察該頁面的加載過程的時候,你會發現有不少東西會冒出水面給你個驚喜:

 

大家可以看到圖片中的 response 應答包頭包含了一個 link: 的資源屬性來發送額外的內容到瀏覽器客戶端,而這個過程其實並不需要瀏覽器客戶端主動的去請求的(因此這就需要對該DOM結構進行相應的解析了)。這向大家展示了真正的HTTP/2服務器推送功能了。

注意: 為了在你的瀏覽器調試界面的網絡標簽中顯示出HTT/2協議信息, 請運行Chrome Canary這個版本的瀏覽器,詳情請看http://ma.ttias.be/view-httpspdyhttp2-protocol-google-chrome/

這種服務器進行推送的方式所帶來的好處是讓下載stylesheet的過程更加快速。這你可以通過比較訪問傳統的HTTP/1.1網站和開啟了服務器推送功能的HTTP/2的網站就很容易看出來了。

傳統的HTTP/1.1頁面加載

比如,以下圖片顯示的就是通過典型的傳統HTTP/1.1協議方式訪問我的博客網站時的流程。

從上圖可以看到,在 GET / 這個請求發出后,就會需要等待大概20毫秒的時間去解析網頁內容,然后才會開始對下一個資源 widget.css的請求。

 

 

啟動了服務器推送的HTTP/2網頁加載

相比HTTP/2的流程:

 

從中可以看到,DOM和其他額外的資源都不需要進行解析,客戶端就已經可以下載 screen.css 這個資源了。這就不需要“浪費時間”在處理DOM和哪些額外的資源上面了,需要做的僅僅是發送另外一個請求到服務器端去把它們拿下來而已。

 

一旦你在你的一個頁面中的所有資源都加上該功能后,你就很大可能為你的網站該網頁的加載/渲染速度省掉100-200毫秒了。這些數據相信已經足夠吸引你來實現HTTP/2功能了吧。

就響應速度和網頁速度來說,HTTP/2將會給你帶來巨大的驚喜--特別是當你使用了服務器端推送功能之后。

-----------------------完---------------------

引用英文連接:http://ma.ttias.be/service-side-push-http2-nghttp2/?s=hn

 

請尊重原創作/譯者

微信知識共享公眾號

CSDN

天地會珠海分舵

TechGoGoGo

http://blog.csdn.net/zhubaitian

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM