HTTP/2 是新一代 HTTP 協(xié)議,其中最值得注意的特性就是服務(wù)器推送(Server Push)—— 一種可以讓服務(wù)器主動(dòng)把內(nèi)容推送到瀏覽器的方式。在瀏覽器還沒(méi)有意識(shí)到頁(yè)面需要之前,服務(wù)器就把這些元素預(yù)先推送到瀏覽器,通常推送的是 CSS 文件,JavaScript 腳本,圖片文件等鏡頭資源。頁(yè)面 HTML 加載之前,渲染頁(yè)面需要的靜態(tài)文件就加載好了,給網(wǎng)站用戶(hù)的感覺(jué)就是頁(yè)面瞬間打開(kāi)了。
該插件給所有通過(guò) Enqueued 注冊(cè)的 CSS 和 JS 文件添加了一個(gè)類(lèi)似?Link:<...> rel="prefetch" 的 header 信息,服務(wù)器看到這個(gè) Head 信息,就主動(dòng)把這些信息里定義的文件推送到瀏覽器了。
插件目前不支持非 Enqueued 添加的腳本文件。遵循 WordPress 標(biāo)準(zhǔn)的主題和插件都會(huì)使用 Enqueued 注冊(cè)腳本文件。
該插件需要服務(wù)器支持 HTTP/2,如果服務(wù)器不支持HTTP/2,插件則會(huì)添加預(yù)存取信息?link prefetching 信息,這是所有現(xiàn)代瀏覽器都支持。
怎么為服務(wù)器開(kāi)啟 HTTP/2
而瀏覽器只在使用 TLS 連接(https:// 開(kāi)頭的網(wǎng)址)時(shí)才支持 HTTP/2。
Nginx 尚不支持 Server Push
到 2017 年 11 月,Nnginx 還沒(méi)有加入 Server Push 支持,不過(guò)我們依然可以為 Nginx 開(kāi)啟HTTP/2 支持,開(kāi)源版本的 Nginx 從 1.9.5 版開(kāi)始支持 HTTP/2,首先升級(jí) Nginx 到1.9.5 以上的版本。如果你的 Linux 系統(tǒng)版本比較低,可能還需要升級(jí) OpenSSL 到1.02b版本,然后在 Nginx Server 配置里面加入 HTTP2 支持就可以了。
server {
listen 443 ssl http2;
server_name wpzhiku.com;
...
Apache 服務(wù)器開(kāi)啟 HTTP/2
Apache 是在 2.4.17 之后才支持 HTTP/2 協(xié)議的。Apache 開(kāi)啟 HTTP/2 相對(duì)來(lái)說(shuō)要復(fù)雜一些,具體方法可參考?https://linux.cn/article-6720-1.html。
如果服務(wù)器支持不了 HTTP/2
并不是所有的 WordPress 站點(diǎn)都可以自定義服務(wù)器環(huán)境。如果服務(wù)器不支持 HTTP/2 環(huán)境,插件則會(huì)添加預(yù)加載信息到 Head 中,也能提高頁(yè)面打開(kāi)速度。


