Kon*_*ine 3 java tomcat servlets http2
我正在研究 HTTP2 以及我们在应用程序中使用它的可能性。目前我们正在 Java 8 中开发并使用 Tomcat 8.5.24(这意味着我们使用 Servlet 3.1)。我在网上搜索过,但找不到任何关于如何利用 HTTP2 功能的资源。
我能找到的唯一示例是使用 Servlet 4.0(从我看到的情况来看,它仅受 Tomcat 9 支持)并且唯一展示的是在PushBuilder客户端请求和 html 页面时使用 a来推送 css 和 js 文件。
我能否通过 HTTP2 使用 Servlet 3.1 提供的异步 API?Servlet 3.1 是否支持 HTTP2?如果没有,Tomcat 8.5 支持 HTTP2 的意义何在?仅用于推送网络资源?
首先,一些基本点:
要解决您的具体问题:
我能否通过 HTTP2 使用 Servlet 3.1 提供的异步 API?
是的。它仍然有 4.0 规范。
Servlet 3.1 是否支持 HTTP2?
不可以。Servlet 4.0 规范的附录 A1 明确指出与 3.1 相比的一个变化是“支持 HTTP/2 的要求”。
如果没有,Tomcat 8.5 支持 HTTP2 的意义何在?
因为 HTTP/2 中存在独立于 servlet 的特性。请参阅有关其 HTTP/2 支持的 Tomcat 8.5 文档。例如,虽然您无法实现 HTTP/2 服务器推送,但您仍然可以使用 Tomcat 8.5 实现 HTTP/2 标头压缩。
仅用于推送网络资源?
不。HTTP/2 是关于性能的,而服务器推送只是一个特性:
最后,还有一些相关的事项值得注意: