Chrome 将于 5 月底升级,届时大部分用户将不能使用 HTTP/2

简介:

早在去年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.1
The negotiated protocol: h2

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

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

文章转载自 开源中国社区[http://www.oschina.net]

相关文章
|
安全 JavaScript Java
记一次网站全站http升级为https的过程,websocket : ws升级为wss遇到的问题等
记一次网站全站http升级为https的过程,websocket : ws升级为wss遇到的问题等
1289 0
记一次网站全站http升级为https的过程,websocket : ws升级为wss遇到的问题等
|
2月前
|
安全 搜索推荐 前端开发
【https】如何让http升级成https
文章详细讲解了如何让HTTP到HTTPS的操作过程
40 0
【https】如何让http升级成https
|
8月前
|
域名解析 负载均衡 JavaScript
升级 HTTP 至 HTTPS:使用 Nginx 反向代理
升级 HTTP 至 HTTPS:使用 Nginx 反向代理
210 0
|
9月前
|
JSON Dubbo JavaScript
Dubbo3 Triple 协议重磅升级:支持通过 HTTP 连通Web与后端微服务
阿里 [HSF2 框架已经完成到 Dubbo3 的全面升级](https://ata.atatech.org/articles/11000209827?spm=ata.25287382.0.0.26577536vUxJq6),阅读本文了解 Triple 协议工作原理。更多技术内容分享,请参见[官网博客](https://cn.dubbo.apache.org/zh-cn/blog/) ## 全新
318 0
Dubbo3 Triple 协议重磅升级:支持通过 HTTP 连通Web与后端微服务
|
10月前
|
JSON Dubbo JavaScript
Dubbo Triple 协议重磅升级:支持通过 HTTP 连通 Web 与后端微服务
Dubbo Triple 协议重磅升级:支持通过 HTTP 连通 Web 与后端微服务
|
10月前
|
Web App开发 缓存 网络协议
Chrome 抓包:快速定位 HTTP 协议问题
Chrome 抓包:快速定位 HTTP 协议问题
153 0
|
11月前
|
Web App开发 缓存 JSON
chrome浏览器自带的开发者工具查看http头以及详解http头
1.浏览器常见HTTP请求头解释 使用chrome浏览器自带的开发者工具查看http头的方法 1.在网页任意地方右击选择审查元素或者按下 shift+ctrl+c, 打开chrome自带的调试工具; 2.选择network标签, 刷新网页(在打开调试工具的情况下刷新); 3.刷新后在左边找到该网页url,点击 后右边选择headers,就可以看到当前网页的http头了;
2955 0
|
安全 JavaScript Java
[※]记一次网站全站http升级为https的过程,websocket : ws升级为wss遇到的问题等
[※]记一次网站全站http升级为https的过程,websocket : ws升级为wss遇到的问题等
1102 0
[※]记一次网站全站http升级为https的过程,websocket : ws升级为wss遇到的问题等
设备端OTA升级的https实现
OTA(Over-the-Air Technology)即空中下载技术。物联网平台支持通过OTA方式进行设备升级。
354 0
设备端OTA升级的https实现
|
Web App开发 JavaScript 前端开发
JavaScript 技术篇-navigator.permissions读取chrome剪切板权限获取不生效原因:只有在https协议下使用有效。手动设置chrome页面剪切板读取权限方法
JavaScript 技术篇-navigator.permissions读取chrome剪切板权限获取不生效原因:只有在https协议下使用有效。手动设置chrome页面剪切板读取权限方法
1188 0
JavaScript 技术篇-navigator.permissions读取chrome剪切板权限获取不生效原因:只有在https协议下使用有效。手动设置chrome页面剪切板读取权限方法