经过一些研究,我惊讶地发现在Tomcat中没有关于HTTP/2支持的任何资源。8.0版本的变更日志表明实验性支持SPDY,wiki将HTTP/2称为受支持的规范(http://wiki.apache.org/tomcat/Specifications),但我没有找到任何教程。
你知道是否已经可以在Tomcat上启用HTTP/2吗?如果答案是肯定的,我该如何做?
你知道是否已经可以在Tomcat上启用HTTP/2吗?如果答案是肯定的,我该如何做?
Tomcat目前还不支持HTTP/2。
计划从Tomcat 9开始支持HTTP/2,也可能会向早期版本进行后移植。
实验性的SPDY支持只是试验性的。只有在浏览器支持特定版本的SPDY时才能正常工作,但当前没有任何浏览器支持Tomcat实现的SDPY版本。
这种SPDY的实验性支持已经从Tomcat 8.0.22中删除,在changelog中有记录。
Tomcat 8.5已发布,其中包括从Tomcat 9中迁移过来的特性,并支持HTTP/2协议。
我个人还没有机会在Tomcat 8.5上设置HTTP/2,所以无法对“如何设置”进行评论。
Tomcat现已支持HTTP/2协议。Tomcat-8.5版本及以上支持HTTP/2。若要在Tomcat-8.5或更高版本中启用HTTP/2,请在tomcat的conf文件夹中的server.xml文件中升级连接器协议。
<Connector ... >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
</Connector>
您还需要设置SSL证书的配置,以使其与此连接器配合使用。
启用Tomcat8.5.x的HTTP2,
@Bean
public EmbeddedServletContainerCustomizer tomcatCustomizer() {
return container -> {
if (container instanceof TomcatEmbeddedServletContainerFactory) {
((TomcatEmbeddedServletContainerFactory) container).addConnectorCustomizers((connector) -> {
connector.addUpgradeProtocol(new Http2Protocol());
});
}
};
}