看到这个帖子
https://www.v2ex.com/t/505373 HTTP2 和 HTTP2 Server Push
参考 RFC
https://tools.ietf.org/html/rfc7540服务端:大多数 Web server 的较新版,比如 nginx apache caddy,需要 OpenSSL 1.0.2 或者相关派生版本
客户端:比较新的浏览器
TLS v1.3 0-RTT
RFC
https://tools.ietf.org/html/rfc8446服务端:nginx 1.15.5,不开启 0-RTT 只支持 1.3 的话,Nginx 版本 1.4.0 以上即可
客户端:Chrome 70,Firefox 63
Brotli static
https://github.com/google/brotli服务端:nginx + 第三方模块
客户端:较新的 Chrome Firefox
可以预先把文件压缩成 br,这样 nginx 发送 br 文件时,就不需要实时压缩,而是调用 Linux 的 sendfile 直接从内核态发送出去,连从内核态复制到用户态的操作都省了
预先压缩这个操作,要和发布操作关联,避免 br 文件没有被更新
webp
https://developers.google.com/speed/webp/压缩率优于 png,远好于 jpg。因为 Chrome 的市场占有率,支持的客户端比率较高
服务端:没要求
客户端:Chrome 12+
可以直接转换 webp 文件,建议在发布步骤自动转换
客户端需要自适配,使用 js 之类的,或者在服务端渲染里做
如果要在服务端做自动转换,比较麻烦,还涉及到缓存
PS: 其实搞这么多,你的个人站点也没几个人访问