如果 HTTP/2 的网站返回以下之一的头部,不管值是什么
connection
transfer-encoding
keep-alive
upgrade
proxy-connection
iOS 浏览器就会出现 ERR_FAILED,无法正常显示页面
经测试 Windows 和 Android 的 Chrome、Firefox 均正常
Chrome 会删除这些头部,Firefox 会忽略这些头部
根据 RFC7540,这些头部不应该出现在 HTTP/2 的网站中
https://tools.ietf.org/html/rfc7540#section-8.1.2.2
如果 nginx 作为反代,后端是 http 协议,那 nginx 对于 HTTP/2 的连接,是会删除这些头部的,除了 Upgrade 外
所以如果后端返回的头部有 Upgrade,经过 nginx 反代+https,那 iOS 就会无法访问
测试 iOS 10 和 11 均表现如此
另:测试 Websocket over HTTP/2 在 iOS 下没问题