有谁知道支持HTTP/2.0的Tomcat最低版本是多少?我一直在他们的网站上到处寻找,但找不到任何有关此的详细信息。
我是 Jetty 中的 HTTP/2 实现者,我关注其他实现 HTTP/2 的项目。
Tomcat 的 Mark Thomas 概述了 Tomcat 9 对 HTTP/2 的支持。
2017 年 1 月更新:Tomcat 8.5 支持 HTTP/2 请参阅@joe-aldrich 答案 https://stackoverflow.com/a/37889873/2027465
考虑到 Servlet 4.0 将把 HTTP/2 支持作为目标,并且 HTTP/2 支持需要 JDK 中的 ALPN 支持(我也参与其中),并且 JDK 中的 ALPN 支持计划在 JDK 9 中实现,这一切可能需要很长时间才能实现。但是,请注意其他 Servlet 容器已经提供了 HTTP/2 支持。
Jetty 9.3.0 对 HTTP/2、客户端和服务器具有完整、强大的支持。 我们已经在自己的网站上运行 HTTP/2 好几个月了,我们认为 HTTP/2 支持生产就绪。 Jetty 的 HTTP/2 Push API 正在考虑包含在 Servlet 4.0 中。 HTTP/2 Push 已经可供以透明方式(通过 Servlet Filter)部署到 Jetty 的应用程序使用。
Undertow 也有 HTTP/2 的实现。
版本 9)完全支持 HTTP/2。但是,由于所有主要浏览器仅通过 TLS 实现HTTP/2,因此您需要配置 Tomcat 以允许这样做。本文介绍了 Tomcat 中的 TLS 配置,但这里是摘要。
打开conf/server.xml
文件并进行以下配置更改。
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true">
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"/>
<SSLHostConfig honorCipherOrder="false">
<Certificate certificateKeyFile="conf/ca.key"
certificateFile="conf/ca.crt"/>
</SSLHostConfig>
</Connector>
<!--<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> -->