簡體   English   中英

Http2服務器推送支持

[英]Http2 Server Push support

有關在Http2中使用Server Push的快速問題/說明。

因此,我安裝了libnghttp2,然后使用http2支持從源代碼編譯了Apache 2.4.18,並創建了一些使用https的自簽名證書。

然后,我在指令Protocols h2c http / 1.1中添加了一個虛擬主機,其中包括:

<Location /index.html>
    Header add Link "</css/site.css>;rel=preload"
</Location>

所以我可以測試服務器推送。 使用Firefox達到我的前端,我得到了返回的h2標頭以及值為/css/site.css的Link標頭,但是我的css沒有預加載。。不確定我是否從根本上誤解了Server Push在做什么或不做什么?我是否做錯了什么。

我嘗試使用CSS值和位置值的一些變體,但沒有成功。 谷歌搜索了一段時間,但無濟於事,所以朝着正確方向的任何一點都很好。

您可以重試:

<Location /index.html>
Header add Link "</css/site.css>;rel=preload;as=style"

如果要推送圖像,則應使用“ as = image”

協議H2C http / 1.1

選擇h2c將啟用http / 2 clear,只有少數命令行瀏覽器支持。 由於您使用的是Firefox,這意味着它將默認為http / 1.1,因此所有主流瀏覽器僅支持基於TLS的HTTP / 2。
要查看當前版本的Firefox選擇,你可以使用插件像這一個 ,也可以打開開發者工具(F12),點擊每一個資源,看慣了協議的版本,如解釋在這里
您的Headar add Link命令看起來不錯。
您可以使用nghttp或curl(檢查您的版本是否支持HTTP / 2)命令行瀏覽器來測試當前設置

如果您的服務器端代碼在Java中,請嘗試使用PushBuilder對象將文檔推送到客戶端。 網頁的內容將按PushBuilder對象推送的順序緩存到客戶端的瀏覽器中。 確保僅使用一個PushBuilder對象來推送這些文檔。

此外,建議您使用協議h2 http / 1.1代替協議h2c http / 1.1

暫無
暫無

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

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