簡體   English   中英

嘗試實現 HTTP2 推送

[英]Trying to implement HTTP2 push

從我所讀到的(其中包括一篇 Smashing mag 文章和一篇 Akamai 文章),實現 HTTP2 服務器推送只需要向我網站上的頁面添加一兩個標頭即可。 例如:

Link: </css/styles.css>; rel=preload; as=style
Link: </js/common.js>; rel=preload; as=script

這是准確的嗎? 真的那么容易嗎?

這完全取決於您正在運行的 Web 服務器以及它如何實現 HTTP/2 推送(如果有的話)。

例如,使用鏈接頭適用於 Apache。 Nginx 目前不支持服務器推送。 一些 CDN 也使用鏈接標頭來實現它。

然而,即使它很容易啟用,您可能也不應該不加考慮。 問題是,雖然這可能會加快第一次加載的速度,但之后您的 JavaScript 和 CSS 將被緩存(您正在緩存您的資源客戶端,不是嗎?如果不是,那么甚至不要看像 HTTP 這樣的高級主題/2 直到您掌握正確的基礎知識)。 所以如果你在它已經緩存的時候推送它是一種浪費。 現在瀏覽器可以停止推送,如果它不需要那個資源,因為它已經像這個例子一樣擁有它,但這仍然需要時間和精力,對於小資源(如 CSS 或 JavaScript),它可能會有很多在你停止它的時候下載。

所以你應該只在客戶端很有可能需要資源的時候推送。 Cache-Digests將是客戶端告訴服務器它緩存了哪些資源的一種方式,從而幫助服務器決定是否推送,但它仍在進行中,如果有任何瀏覽器支持它,它不會消失。 同時,我在 Apache 中完成了一個簡單的基於 cookie 的實現,您可能會感興趣: https : //www.tunetheweb.com/performance/http2/http2-push/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM