Java对HTTP2的支持
Java对HTTP2的支持
Java对HTTP2的支持情况,实质上包含两个部分。
一个就是Java对TLS 1.2及其ALPN扩展的支持情况,另一个就是Java对HTTP2客户端、服务器的编程支持情况。
1. Java对TLS 1.2及其ALPN扩展的支持
1.1 Java 6
初始时不支持TLS 1.2,但在最新的更新包(6u191)支持,并且客户端默认即使用TLS 1.2。
但是为了支持HTTP2,还要借助于Jetty的ALPN模块alpn-boot。
下载alpn-boot的jar,并且在启动JVM时加参数java -Xbootclasspath/p:<path_to_alpn_boot_jar>
1.2 Java 7
初始时都不支持TLS 1.2,但在最新的更新包(7u181)支持,并且客户端默认即使用TLS 1.2。
但是为了支持HTTP2,还要借助于Jetty的ALPN模块alpn-boot。
下载alpn-boot的jar,并且在启动JVM时加参数java -Xbootclasspath/p:<path_to_alpn_boot_jar>
1.3 Java 8
初始即支持TLS 1.2,并且客户端默认即使用TLS 1.2。
但是为了支持HTTP2,还要借助于Jetty的ALPN模块alpn-boot。
下载alpn-boot的jar,并且在启动JVM时加参数java -Xbootclasspath/p:<path_to_alpn_boot_jar>
1.4 Java 9
初始即支持TLS 1.2,并且客户端默认即使用TLS 1.2。
通过JEP 244, TLS ALPN Extension支持ALPN,完整支持了HTTP2。
1.5 Java 10
同Java 9。
1.6 Java 11
同Java 9,并进而支持TLS 1.3。
2. Java对HTTP客户端、服务器的编程支持
2.1 客户端Java API
从Java 9开始,通过JEP 110, HTTP/2 Client API proposal提供了对HTTP 2.0和WebSocket客户端的编程支持。以HttpClient替换了HttpURLConnection/HttpsURLConnection。
但是,该模块仍然属于沙箱试验,Java 10仍然未能正式发布。为JVM添加模块后使用:
--add-modules=jdk.incubator.http
从Java 11开始,JEP 110, HTTP/2 Client API终于正式发布,模块名java.net.http。
2.2 服务端Servlet 4.0
在JavaEE 8中,正式发布了JSR 369,支持Servlet 4.0。
参考链接:
http://www.oracle.com/technetwork/java/javase/jdk-relnotes-index-2162236.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南