SpringWebClientがHTTP/2を使用しているかどうかを知りたいのですが。どうすればそれを判断できますか?
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接続を終了しないと検出できません。
私は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はあなたが望む出力ではありませんか?もしそうなら、このスレッドをチェックしてください: