Tomcat 支持 HTTP/2.0?

问题描述 投票:0回答:4

有谁知道支持HTTP/2.0的Tomcat最低版本是多少?我一直在他们的网站上到处寻找,但找不到任何有关此的详细信息。

tomcat https tomcat7 tomcat8 http2
4个回答
69
投票

我是 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 的实现。

Netty也有一个,但它不是基于Servlet API。


24
投票
Tomcat 8.5 已发布,具有从 Tomcat 9 向后移植的功能,并包含 HTTP/2 支持。


13
投票
最新版本的 Tomcat(

版本 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>
    

0
投票
自动更新 Tomcat v.9 后,https 不再工作,我通过在 server.xml 中注释以下行来解决它

<!--<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> -->
    
© www.soinside.com 2019 - 2024. All rights reserved.