Java HTTP / 2服务器套接字 [英] Java HTTP/2 Server Socket
问题描述
我想让服务器套接字在Java中用于HTTP / 2,最好是TLS / https。
I want to get server sockets working for HTTP/2 in Java, preferably TLS/https.
我有一个TLS服务器套接字工作正常,但浏览器只会说HTTP / 1.1。如果我理解正确,您需要ALPN来获取HTTP / 2浏览器以连接到您的TLS套接字并开始在其上运行HTTP / 2;浏览器不会要求在https上升级到HTTP / 2。到目前为止,Java8似乎没有做ALPN。也许还有其他方法来强制浏览器做HTTP / 2,至少是非TLS。
I've got a TLS server socket working fine, but browsers will only talk HTTP/1.1 to it. If I understand correctly, you need ALPN to get a HTTP/2 browser to connect to your TLS socket and start running HTTP/2 on it; browsers won't ask for upgrade to HTTP/2 on https. It seems Java8 does not do ALPN so far. Maybe there is some other way to coerce browsers to do HTTP/2, at least non-TLS.
那么,有谁知道如何为HTTP / 2创建Java服务器套接字?
So, anybody know how to make a Java server socket for HTTP/2?
推荐答案
Java至少会在2016年底或2017年的JDK 9之前获得ALPN。
Java won't get ALPN until at least JDK 9, which is slated for late 2016 or 2017.
同时,你可以使用 Jetty 的 ALPN实现,或者更好的是,直接使用Jetty(或建议的其他服务器)而不是使用ServerSocket进行自己的HTTP / 2实现。
Meanwhile, you can use Jetty's ALPN implementation, or better yet, use Jetty (or other servers as suggested) directly rather than doing your own HTTP/2 implementation using ServerSocket.
[免责声明,我是Jetty提交者]
Jetty 9.3非常支持HTTP / 2,包括 HTTP / 2推送。
[Disclaimer, I am a Jetty committer] Jetty 9.3 has great support for HTTP/2, including HTTP/2 Push.
这篇关于Java HTTP / 2服务器套接字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!