web-dev-qa-db-ja.com

SpringWebClientがHTTP / 2を使用しているかどうかを確認する方法は?

SpringWebClientがHTTP/2を使用しているかどうかを知りたいのですが。どうすればそれを判断できますか?

5
pixel

HTTP/2のサーバーサポート

Spring Framework 5.1(Reactor Netty 0.8)の時点で、このサーバーはHTTP/2もサポートしています。 JDK9 +デプロイメントは、特定のインフラストラクチャを変更することなく、そのプロトコルをサポートします。

Reactorは、SpringWebClientによって使用される基盤となるhttpクライアントです。 Spring Framework 5.1以降、これはHTTP/2をサポートします。

概要については、 Spring Framework:HTTP/2サポート も参照してください。

HTTP/2は接続ごとにネゴシエートされます

リクエストconnectionがHTTP/2を使用しているか、HTTP/1.1がクライアントとの間の接続ごとにネゴシエートされているか [〜#〜] alpn [〜#〜] を使用するサーバー。サーバーpresentがサポートしているhttpバージョン。両方の部分がサポートしている場合、クライアントはHTTP/2を選択しています。これはハンドシェイクでTLSを介して行われるため、TLS接続を終了しないと検出できません。

2
Jonas

私はstackoverflowでこの答えを見ました:

react.ipc.netty.channel.ChannelOperationsHandlerがそれを行います。そのクラスのログシステムを構成して、DEBUGレベルでログを記録するだけです。

出力は次のようなものです。

2017-11-23 12:52:04.562デバッグ41449 --- [ctor-http-nio-5] rinchannel.ChannelOperationsHandler:[id:0x9183d6da、L:/ 127.0.0.1:57681-R:localhost/127.0.0.1 :8000]オブジェクトの書き込みDefaultFullHttpRequest(decodeResult:success、version:HTTP/1.1、content:UnpooledByteBufAllocator $ InstrumentedUnpooledUnsafeHeapByteBuf(ridx:0、widx:0、cap:0))GET/api/v1/watch/namespaces/default/events HTTP /1.1

おそらく私は間違っていますが、HTTP/1.1はあなたが望む出力ではありませんか?もしそうなら、このスレッドをチェックしてください:

Spring 5 WebClient呼び出しをログに記録する方法

2
Curious Mind