Java Jetty的HTTP/2问题-前言无效
我正在试验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请求
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