HTTP/2 支持 Tomcat 8

HTTP/2 support in Tomcat 8

经过一些研究,令我惊讶的是我没有在 Tomcat 中找到任何关于 HTTP/2 支持的资源。 8.0 的变更日志表明对 SPDY 的实验性支持,wiki 将 HTTP/2 称为受支持的规范 (http://wiki.apache.org/tomcat/Specifications),但我找不到任何关于它的教程。

您知道是否已经可以在 Tomcat 上启用 HTTP/2?如果答案是肯定的,我该怎么做?

Tomcat暂不支持HTTP/2。

HTTP/2 计划在 Tomcat 9 之后提供支持。它可能会向后移植到早期版本。

实验性的 SPDY 支持只是:实验性的。它在浏览器支持特定版本的 SPDY 时工作,但目前没有浏览器支持 Tomcat.

实现的 SDPY 版本

SPDY 的实验性支持已从 Tomcat 8.0.22 中删除,在 changelog 中注明。

HTTP/2 Support 现在可以在 Tomcat 中使用。 Tomcat-8.5支持HTTP/2。要在 tomcat-8.5 或更高版本中启用 HTTP/2,您需要升级文件 server.xml[=21 中的连接器协议=] 在 tomcat conf 文件夹中。

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

您还需要设置 SSL 证书的配置才能使用此连接器。

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

我个人还没有机会在 Tomcat 8.5 上设置 HTTP/2,所以我无法评论 "how to"。

为 tomcat8 启用 http2。5.x、

@Bean
       public EmbeddedServletContainerCustomizer tomcatCustomizer() {
        return container -> {
            if (container instanceof TomcatEmbeddedServletContainerFactory) {
                ((TomcatEmbeddedServletContainerFactory) container).addConnectorCustomizers((connector) -> {
                    connector.addUpgradeProtocol(new Http2Protocol());
                });
            }
        };
    }