以这种方式,客户端可以在没有ALPN的情况下连接服务器,并使用http / 2默认值。
有可能吗?
是可以的,但是条件很严格。
浏览器,到目前为止,尚未为HTTP / 2实现明文通信,因此,如果您使用浏览器,则问题的答案为否:如果希望浏览器能够使用,则必须部署具有ALPN支持的服务器。连接。
另一方面,其他客户端(例如Java客户端)也可以使用纯文本HTTP / 2连接到服务器,因此对于这些类型的客户端,您的问题的答案是肯定的:您可以部署HTTP / 2没有ALPN支持的服务器。
[Jetty Project [免责声明,我是提交者]实现了支持两种情况的Web服务器和servlet容器:您可以为TLS(SSL)HTTP / 2通信启用ALPN,以便浏览器能够连接,并且您还可以将纯文本HTTP / 2通信作为explained here启用。另请参阅Jetty HTTP/2 documentation。