Tomcat对HTTP/2.0的支持?

Ash*_*son 42 https tomcat tomcat7 tomcat8 http2

有谁知道支持HTTP/2.0的Tomcat的最低版本是什么?我一直在他们的网站上的任何地方寻找,我找不到任何有关这方面的细节.

sbo*_*det 67

我是Jetty中的HTTP/2实现者,我注意到实现HTTP/2的其他项目.

Tomcat的Mark Thomas已经为Tomcat 9概述了对HTTP/2的支持.

2017年1月更新:Tomcat 8.5支持HTTP/2,请参阅@ joe-aldrich回答 /sf/answers/2652291141/

考虑到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推送API正被考虑包含在Servlet 4.0中.HTTP/2 Push已经以透明方式(通过Servlet过滤器)部署到Jetty的应用程序可用.

Undertow还有一个HTTP/2实现.

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


Joe*_*ich 23

Tomcat 8.5已发布,具有从Tomcat 9反向移植的功能,并包含HTTP/2支持.


Ale*_*dom 8

最新版本的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>
Run Code Online (Sandbox Code Playgroud)

  • 如果Tomcat仅配置了http(在http连接器端口8080上)并且我们使用Apache Web服务器来提供https,它仍然可以工作吗? (4认同)
  • @Tony 你有没有找到你上面问题的答案?我们有相同的设置,通过 HTTP 运行 Tomcat 并使用 Apache HTTP 或 Cloudfront 代理它。&gt; 如果 Tomcat 仅配置了 http(在 http 连接器端口 8080 上)并且我们使用 Apache Web 服务器来传送 https,它是否仍然有效? (2认同)