博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Chrome 将于 5 月底升级,届时大部分用户将不能使用 HTTP/2
阅读量:7252 次
发布时间:2019-06-29

本文共 1011 字,大约阅读时间需要 3 分钟。

早在去年8月,Chromium项目已经决定开始废弃的NPN协商协议(一个传输层安全协议扩展协议)。即将在5月31日发布的Chrome 51稳定版本中,NPN协商协议将被正式废除,仅支持ALPN协商协议。也就是说,所有目前基于NPN协商协议的HTTP/2协议都将无法使用,并被降级到HTTP/1.1。

这对于客户端来说没有太大影响,但是对于希望使用HTTP/2协议的服务端,将NPN升级到ALPN,并不是一件容易的事情,OpenSSL至少需要升级到1.0.2版本才可以支持ALPN。

下表是常见服务器操作系统版本中自带的OpenSSL版本:

image

从上表可以看出,目前常用的服务器版本中,默认OpenSSL为1.0.2的只有Ubuntu 16.04 LTS。其他版本如果要升级OpenSSL版本,成本非常高,因为有很多包依赖OpenSSL,这些包都需要重新打包并进行测试。另一方面,OpenSSL 1.0.1的支持到2016年12月31日就将结束。

在一个传统搭建LAMP(Linux、Apache、MySQL、PHP)服务器上,通常会依赖OpenSSL库的软件有:

$ lsof | grep libssl | awk '{print $1}' | sort | uniq

anvil

fail2ban

gdbus

gmain

httpd

postfix

mysqld

NetworkManager

nginx

php-fpm

puppet

sshd

sudo

tuned

zabbix_agent

也就是说,如果系统的OpenSSL版本升级,这些包都需要重新打包,如果有API不兼容的地方,升级成本将会更高。

在Chrome 51稳定版之前,以下示例的协商结果会使用HTTP/2协议:

coolex ~ # nghttp -v -n https://ma.ttias.be[  0.252] Connected[  0.507][NPN] server offers:          * h2          * http/1.1The negotiated protocol: h2

但是升级之后,由于NPN协商逻辑已经废弃,Chrome将无法协商获取服务器支持HTTP/2协议,进而降级成HTTP/1.1协议。

对于该问题,目前来看最简单的方式,是将应用运行到诸如Docker等的容器中。

文章转载自 开源中国社区[

你可能感兴趣的文章
SDOI2018:荣誉称号
查看>>
WPF中监视DependencyProperty的变化
查看>>
区块链原理基础
查看>>
jdbc操作根据bean类自动组装sql,天啦,我感觉我实现了hibernate
查看>>
PHP实现执行定时任务的几种思路详解
查看>>
几种机器学习框架的对比和选择
查看>>
graphql-yoga interface && union 使用
查看>>
32.QT-制作最强电压电阻表盘,可以自定义阴影效果,渐变颜色,图标,文字标签等-附带demo程序...
查看>>
jquery tmpl 详解
查看>>
Linux iptables 命令
查看>>
bootstrap课程9 bootstrap如何实现动画加载进度条的效果
查看>>
Laravel 5.3 用户验证源码探究 (一) 路由与注册
查看>>
程序员考证之信息系统项目管理师
查看>>
scikit-learn学习笔记
查看>>
mybatis 传入多个参数
查看>>
opencv给图片添加文字水印<转>
查看>>
mysql查询表的数据大小
查看>>
初识Continuation
查看>>
smooth l1
查看>>
ET–异步协程使用–TimerComponent篇
查看>>