2016-03-17 40 views
2

如果只有客戶端< - >負載均衡器是HTTP/2並且實際的Web服務器不是,那麼HTTP/2的多少性能優勢會丟失?我猜這取決於負載平衡器和服務器之間的延遲和帶寬,但是如果您必須爲平均情況進行猜測,那麼它有什麼關係?是否需要端到端實施HTTP/2纔有用?

+0

Web服務器中設置的HTTP標頭('Cache-Control'和'Link')對於最終的性能可能非常重要。你使用什麼負載平衡器? – Oleg

回答

2

如果您實現端到端的HTTP/2,您會得到兩件大事。

第一個是你的負載均衡器不需要執行任何從HTTP/2到HTTP/1.1的解析和重構,反之亦然。這考慮了負載平衡器上的延遲和CPU使用情況,以及諸如文件描述符(HTTP/1.1中必須大量使用)等資源。

其次,您將失去HTTP/2最重要的功能之一:HTTP/2 Push。 服務器能夠將相關資源推送到客戶端,但只能在端到端使用HTTP/2時使用。 根據我的經驗,HTTP/2 Push是您希望打開的最重要的功能,以減少頁面渲染時間,從而改善用戶體驗,最終帶來更多業務(如demonstrated通過幾項研究)。

我爲Jetty的HTTP/2的維護者,而我在顯示HTTP/2推的好處會議給了一個會話,你可以看相關部分here(或觀看整個會議:)

網上有很多類似的例子顯示了HTTP/2 Push的好處:例如herehere

總之,網站在HTTP/2上端到端的「性能」應根據具體情況進行改進。 對於巨大的(基於圖像的網站或每頁有大量資源的網站),改進可能很小(例如,對於REST網站或基於文本的網站)。

+0

對不起,但結果應該*重要取決於中間的服務器*。如果使用反向代理,**緩存從本地HTTP/1.1服務器加載的內容,那麼只有Cache-Control頭部(來自HTTP 1.1服務器)將非常重要。資源將不會從HTTP/1.1服務器重新加載,因此應該具有HTTP/2的性能。如果來自反向代理的響應具有來自HTTP/1.1的「連接」HTTP頭,那麼HTTP/2推送也應該起作用。因此,我在逆向代理方面看到大多數*實現問題*。沒有端到端的HTTP/2可能真的需要。 – Oleg

相關問題