亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

HTTP/2 Server Push 如何利用?

HTTP/2 Server Push 如何利用?

森林海 2019-04-23 15:12:53
更多生產情況下,靜態資源是放在單獨的服務器或其他第三方服務器。那么如何利用ServerPush將靜態資源推送給客戶端?HTTP/2的ServerPush還能在哪些方面發揮作用?
查看完整描述

2 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

服務端只能根據客戶端請求返回額外的Push流,Push流和正常的響應流需要在同一個TCP連接中,所以一般要求要Push的資源和主頁面由同一個服務端輸出。
HTTP/2中的ServerPush被設計為替代HTTP/1.x中為了節省連接數所引入的「資源inline」方案。因為inline無法被緩存,會導致第二次訪問浪費了流量,多頁面之間的公共資源被inline后也無法利用緩存;圖片base64后還會變大1/3。這些問題,可以通過將inline資源寫入用戶的localStorage,并通過Cookie標記用戶當前版本,達到優化第二次訪問頁面體積的效果。
詳細可以查看我的這篇文章《HTTP/2與WEB性能優化(一)》。
另外HTTP/2的ServerPush主要目的是為了減少時延,服務端要推送資源時,會發送一個PUSH_PROMISE幀,然后接著發出HEADER和DATA幀,客戶端如果發現服務端要推送的資源本地有緩存,可以返回一個RST_STREAM終止流,節省傳輸。這個過程可能會造成一定程度的流量浪費,但是時延還是減少了。
這部分內容,可以查看我的這篇文章《HTTP/2中的ServerPush討論》。這里有H2O的作者KazuhoOku,aria2的作者TatsuhiroTsujikawa,以及《High-PerformanceBrowserNetworking》的作者IlyaGrigorik關于ServerPush的討論。
                            
查看完整回答
反對 回復 2019-04-23
  • 2 回答
  • 0 關注
  • 255 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號