Tomcat是否支持HTTP/2.0?

qyzbxkaa  于 2023-10-19  发布在  其他
关注(0)|答案(4)|浏览(170)

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

wz3gfoph

wz3gfoph1#

我是Jetty的HTTP/2实现者,我关注其他实现HTTP/2的项目。
Tomcat的Mark托马斯有outlined support for HTTP/2 for Tomcat 9

2017年1月更新:Tomcat 8.5支持HTTP/2参见@ joe-aldrichanswer 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具有完整、健壮的support for HTTP/2客户端和服务器。我们已经在自己的网站上运行HTTP/2好几个月了,我们认为HTTP/2支持已经准备好了。Jetty的HTTP/2 Push API正在考虑纳入Servlet 4.0。HTTP/2 Push已经以透明的方式(通过Servlet过滤器)对部署到Jetty的应用程序可用。
Undertow也有一个HTTP/2的实现。
Netty也有一个,但它不是基于Servlet API。

nwlqm0z1

nwlqm0z12#

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

ymzxtsji

ymzxtsji3#

最新版本的Tomcat(version 9)完全支持HTTP/2。但是,由于所有主流浏览器都只支持HTTP/2 over TLS,因此您需要配置Tomcat以允许此操作。这篇文章解释了TLS configuration in Tomcat,但这里是摘要。
打开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>
iszxjhcz

iszxjhcz4#

在自动更新Tomcat v.9之后,https不再工作,我在server.xml中的下面一行注解中解决了它

<!--<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> -->

相关问题