【譯者注:本文需要有一定的http協議知識和瀏覽器解析頁面過程知識】
原文 :
前言
http/2被設計為解決http/1.x的許多缺陷。當代網頁使用了許多資源:html、樣式表、指令碼、等等。在http/1.x中這些資源每乙個都必須明確地請求。這可能是乙個很慢的過程。瀏覽器從獲取html開始,然後在它解析和評估頁面的時候,增量地獲取更多的資源。因為伺服器必須等待瀏覽器做每乙個請求,網路經常是空閒的和未充分使用的。
為了改善延遲,http/2引入了server push,它允許服務端推送資源給瀏覽器,在瀏覽器明確地請求之前。乙個伺服器經常知道乙個頁面需要很多附加資源,在它響應瀏覽器第乙個請求的時候,可以開始推送這些資源。這允許服務端去完全充分地利用乙個可能空閒的網路,改善頁面載入時間。
在協議層,http/2 server push被push_promise 幀所驅動,乙個push_promise描述了乙個請求,即服務端**瀏覽器將馬上要發出的請求。瀏覽器一收到push_promise,它馬上知道服務端將要傳輸這個資源。如果瀏覽器後續發現它需要這個資源,它會等待這個推送完成,而不是傳送乙個新的請求。這減少了瀏覽器花費在網路等待上的時間 。
net/http包中的服務端推送
go1.8引入了來自http.server對推送響應的支援。如果執行的server是乙個http/2的服務,並且進來的連線是使用http/2的時候,這個特性是可用的。在任意乙個http handler中,你可以判斷http.responsewriter是否支援服務端推送,通過檢查它是否實現了新的http.pusher介面。
})因時間關係,今天晚上先譯到這……
公升級NGINX支援HTTP 2服務端推送
nginx從1.13.9版本開始支援http 2服務端推送,上週找時間公升級了下nginx,在部落格上試驗新的特性。公升級工作主要包括 公升級nginx 修改nginx配置 修改wordpress主題 1 配置nginx官方的yum源。建立配置檔案 etc yum.repos.d nginx.rep...
HTTP服務端JSON服務端
最後更新日期 2014 5 18 author kagula 內容簡介 cppcms是個開源web開發框架,通過它可以很容易實現http服務和json服務,這裡介紹cppcms開發環境的搭建。寫乙個cppcms測試程式,它建立http服務,向瀏覽器返回hello,world頁面。cppcms依賴的一...
Spring Http流 服務端推送技術
restcontroller public class testcontroller public void get5 throws ioexception 使用服務傳送事件的http流 sseemitter是responsebodyemitter的乙個子類,提供了對服務端事件推送的技術支援,但是i...