经过一番研究,我很惊讶在 Tomcat 中没有找到任何关于 HTTP/2 支持的资源。8.0 的变更日志表明对 SPDY 的实验性支持,wiki 将 HTTP/2 称为受支持的规范(http://wiki.apache.org/tomcat/Specifications),但我没有找到任何关于它的教程。
你知道是否已经可以在 Tomcat 上启用 HTTP/2 吗?如果答案是肯定的,我该怎么做?
经过一番研究,我很惊讶在 Tomcat 中没有找到任何关于 HTTP/2 支持的资源。8.0 的变更日志表明对 SPDY 的实验性支持,wiki 将 HTTP/2 称为受支持的规范(http://wiki.apache.org/tomcat/Specifications),但我没有找到任何关于它的教程。
你知道是否已经可以在 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,所以我无法评论“如何做”。
HTTP/2 支持现在在Tomcat中可用。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());
});
}
};
}