Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jetty的HTTP/2问题-前言无效_Java_Curl_Jetty_Http2 - Fatal编程技术网

Java Jetty的HTTP/2问题-前言无效

Java Jetty的HTTP/2问题-前言无效,java,curl,jetty,http2,Java,Curl,Jetty,Http2,我正在试验HTTP/2。我在书中找到了一些例子。以下是构造函数(跳过样板代码): 然后我start()打开服务器,从上面提到的repo运行java http2客户机,它连接正确。但是我试着对卷曲做同样的处理: # curl --http2 http://localhost:8080 invalid_preface 浏览器(Chrome)显示: 服务器怎么了?服务器没有问题 您已将Jetty配置为仅侦听HTTP/2(无HTTP/1.1),然后您已要求curl和Chrome发出HTTP/1.1请求

我正在试验HTTP/2。我在书中找到了一些例子。以下是构造函数(跳过样板代码):

然后我
start()
打开服务器,从上面提到的repo运行java http2客户机,它连接正确。但是我试着对卷曲做同样的处理:

# curl --http2 http://localhost:8080
invalid_preface
浏览器(Chrome)显示:


服务器怎么了?

服务器没有问题

您已将Jetty配置为仅侦听HTTP/2(无HTTP/1.1),然后您已要求
curl
和Chrome发出HTTP/1.1请求,Jetty回复为
无效的序言,因为它无法理解它

请记住,浏览器只能通过TLS(即SSL)说HTTP/2,而
curl
也可以说明文HTTP/2

演示如何设置同时支持明文HTTP/1.1和HTTP/2的服务器

演示如何设置同时支持明文和TLS HTTP/1.1和HTTP/2的服务器


有关如何将
curl
与HTTP/2一起使用的信息,请参阅。

感谢您对浏览器限制的解释。但是,如果我对curl使用
--http2
标志,它会失败,并显示相同的消息。
curl
对我来说不会失败。也许您有一个旧版本的
curl
,或者一个旧版本的
openssl
,等等。您需要确保您的
curl
版本在HTTP/2上运行良好,如果仍然有错误,请发布完整的服务器日志和客户端日志。
# curl --http2 http://localhost:8080
invalid_preface
GET http://localhost:8080/ net::ERR_INVALID_HTTP_RESPONSE