说到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

Java对HTTP2的支持相关推荐

  1. java http2_java的okhttp3库中,客户端如何开启http2协议支持

    题目描述 我在实现向苹果的APNs进行推送的工作,因为APNs需要http2协议,所以我在代码中使用了okhttp3这个库来提供客户端的http2支持.okhttp3是3.14.0版本. 但当我使用 ...

  2. Java对于SSL的支持以及证书的安装!

    为什么80%的码农都做不了架构师?>>>    原文引用自: https://evergreen-tree.github.io/articles/2016-05/daily-java ...

  3. 详解各种锁:CAS、共享锁、排它锁、互斥锁、悲观锁、乐观锁、行级锁、表级锁、页级锁、死锁、JAVA对CAS的支持、ABA问题、AQS原理

    共享锁(S锁) 又称为读锁,可以查看但无法修改和删除的一种数据锁.如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排它锁.获准共享锁的事务只能读数据,不能修改数据. 共享锁下其它用 ...

  4. 您的浏览器没有获得Java Virtual Machine(JVM)支持。可能由于没有安装JVM或者已安装但是没有启用。请安装JVM1.5或者以上版本,如果已安装则启用它。...

    您的浏览器没有获得Java Virtual Machine(JVM)支持.可能由于没有安装JVM或者已安装但是没有启用.请安装JVM1.5或者以上版本,如果已安装则启用它. https://www.j ...

  5. 对Java的URL类支持的协议进行扩展的方法

    转载自   对Java的URL类支持的协议进行扩展的方法 JAVA默认提供了对file,ftp,gopher,http,https,jar,mailto,netdoc协议的支持.当我们要利用这些协议来 ...

  6. Java中的网络支持Socket应用

    title: Java中的网络支持Socket应用 date: 2019-05-04 14:00:00 Java中的网络支持Socket应用 前言: 单机的程序终究会被淘汰的,所以还是要让你的程序软件 ...

  7. android 对java 支持_Android在未来对 Java 8 特性的支持

    在谷歌, 我们总是努力做正确的事. 这意味着有时候我们会调整自己的计划. 我们深切地知道开发者社区是多少地关注 Android 能够对 Java 8 良好的支持, 并且我们正在改变自己对 Java 8 ...

  8. Java提供的网络支持

    Java的基本网络支持 1.InetAddress InetAddress 是 Java 用来代表 IP 地址的类,他还有两个子类:Inet4Address(IPV4).Inet6Address(IP ...

  9. 您的浏览器没有获得Java Virtual Machine(JVM)支持。可能由于没有安装JVM或者已安装但是没有启用。请安装JVM1.5或者以上版本,如果已安装则启用它

    您的浏览器没有获得Java Virtual Machine(JVM)支持.可能由于没有安装JVM或者已安装但是没有启用.请安装JVM1.5或者以上版本,如果已安装则启用它 这是我在校外访问学校网遇到的 ...

最新文章

  1. 研究人员测试27个黑客服务 结果仅三个完成任务
  2. 用WWWGrep来检查你的网站元素安全
  3. MPB:林科院袁志林组-巢式PCR检测植物组织痕量内生真菌的方法及其引物
  4. Webix 1.5发布:一个强大的JavaScript UI组件库
  5. pd.get_dummies
  6. BREW做的第一个程序--Hello world!
  7. 全国计算机等级考试题库二级C操作题100套(第02套)
  8. bzoj 2296: 【POJ Challenge】随机种子
  9. oracle深度巡检指标,oracle DBA 巡检项目
  10. newsinglethreadexecutor使用场景_java中Future的使用
  11. Coinbase在上市前选择在Reddit线上路演
  12. C++基础::运算符重载
  13. 网传字节跳动实习生删除GB以下所有机器学习模型,差点没上头条......
  14. TatukGIS - GisDefs - CheckFileWriteAccess 函数
  15. 【HDU】4391 Paint The Wall
  16. 进程间通信机制(管道、信号、共享内存/信号量/消息队列)、线程间通信机制(互斥锁、条件变量、posix匿名信号量)...
  17. java面试题框架篇
  18. div之间横竖方向的5px间距
  19. redis过期策略及定期策略配置
  20. macOS调整分辨率与HiDPI

热门文章

  1. 如何用Google APIs和Google的应用系统进行集成(2)----Google APIs的所有的RESTFul服务一览
  2. 生物医学工程领域 生物医学图像处理 SCI期刊
  3. 刺向巴勒斯坦的致命毒针——双尾蝎 APT 组织的攻击活动分析与总结
  4. 2022前端面试题附答案.
  5. 虚拟机开机出现welcome to emergency mode! 解决方法
  6. validating java_如何禁用Eclipse的Validating
  7. window下创建软连接
  8. AVPlayer 基础用法
  9. C# unicode 转中文
  10. Linux服务器启动tomcat(详细教程避免踩坑)