HTTP/2 是新一代 HTTP 协议,其中最值得注意的特性就是服务器推送(Server Push)—— 一种可以让服务器主动把内容推送到浏览器的方式。在浏览器还没有意识到页面需要之前,服务器就把这些元素预先推送到浏览器,通常推送的是 CSS 文件,JavaScript 脚本,图片文件等镜头资源。页面 HTML 加载之前,渲染页面需要的静态文件就加载好了,给网站用户的感觉就是页面瞬间打开了。
该插件给所有通过 Enqueued 注册的 CSS 和 JS 文件添加了一个类似 Link:<...> rel="prefetch" 的
header 信息,服务器看到这个 Head 信息,就主动把这些信息里定义的文件推送到浏览器了。
插件目前不支持非 Enqueued 添加的脚本文件。遵循 WordPress 标准的主题和插件都会使用 Enqueued 注册脚本文件。
该插件需要服务器支持 HTTP/2,如果服务器不支持HTTP/2,插件则会添加预存取信息 link prefetching 信息,这是所有现代浏览器都支持。
怎么为服务器开启 HTTP/2
而浏览器只在使用 TLS 连接(https:// 开头的网址)时才支持 HTTP/2。
Nginx 尚不支持 Server Push
到 2017 年 11 月,Nnginx 还没有加入 Server Push 支持,不过我们依然可以为 Nginx 开启HTTP/2 支持,开源版本的 Nginx 从 1.9.5 版开始支持 HTTP/2,首先升级 Nginx 到1.9.5 以上的版本。如果你的 Linux 系统版本比较低,可能还需要升级 OpenSSL 到1.02b版本,然后在 Nginx Server 配置里面加入 HTTP2 支持就可以了。
server {
listen 443 ssl http2;
server_name wpzhiku.com;
...
Apache 服务器开启 HTTP/2
Apache 是在 2.4.17 之后才支持 HTTP/2 协议的。Apache 开启 HTTP/2 相对来说要复杂一些,具体方法可参考 https://linux.cn/article-6720-1.html。
如果服务器支持不了 HTTP/2
并不是所有的 WordPress 站点都可以自定义服务器环境。如果服务器不支持 HTTP/2 环境,插件则会添加预加载信息到 Head 中,也能提高页面打开速度。