迁移HTTP/2说简单无非就是升级到支持 h2 的Web服务器或在你的网站前面加上支持 h2 的CDN。这对没有历史包袱或实验性的产品当然是对的,但实际情况并非如此。多数站点是从 HTTP/1一路走来的,所以得考虑向前兼容。即考虑的情况如下或者更多:
浏览器对 h2 的支持
在升级 h2 之前,要先查看自己用户使用的浏览器对 h2 支持情况的数据,下面是 caniuse.com 官网的数据:
这些浏览器的数据一般是从自己统计平台或者第三方平台获取,比如:百度统计、友盟等。
Web服务器对 h2 的支持
在权衡之后,决定升级。首先要对当前站点使用的服务器进行改造,那我们就要考虑现在使用的服务器有对应的版本支持 h2 吗以及当前的业务允许我们去升级到对应版本吗?下面列出了一些服务器对 h2 的支持:
迁移到TLS
因所有的主流浏览器只能访问基于 TLS 的 h2,所以在升级的时候同样要保证对 TLS 的支持。增加对 TLS 的支持需要考虑如下问题:
网站的第三方资源
第三方资源对我们来说有时很重要,就像上面说的浏览器统计数据等。有时这些数据对公司的技术决策,甚至业务发展都有帮助。可又因为第三方资源相对独立,我们没有办法对其操控,所以在升级 h2 的时候需要考虑如下问题:
第三方资源对页面性能的影响举足轻重,需要多加考虑。
如何兼容旧版本客户端
有些用户不喜欢尝试新鲜事物,所以你的用户中可能会存在使用旧版本客户端的,但这些用户又是你的金主但迁移到 h2 又势在必行,那如何解决呢?提供 HTTP/1的备用站点,供旧版本客户端访问并给出版本升级的提示。
个人总结
新技术是美好的,但升级之路并不是一帆风顺。