自由 の HTTP/2 サポート

Servlet 3.1、Servlet 4.0 以降のデフォルトの HTTP/2 構成をオーバーライドします。

Liberty での HTTP/2 プロトコルの使用

HTTP/2 プロトコルは、HTTP/1.1 プロトコルを最適化したものです。 任意のエンドポイントが HTTP/2 のサポートを有効にすることができます。 ただし、接続の両方のエンドポイントが HTTP/2 をサポートしているのではない場合は、HTTP/1.1 プロトコルが使用されます。 Secure Sockets Layer (SSL) 接続では、Application-Layer Protocol Negotiation (ALPN) プロトコルを使用して HTTP/2 がネゴシエーションされます。 非セキュア接続では、HTTP アップグレード・ヘッダーを使用して HTTP/2 が要求されます。 すべての接続で、クライアントは HTTP/2 を使用する要求を開始します。 HTTP/2 エンドポイントのネゴシエーションおよび使用はユーザーには透過的です。

Servlet 4.0 フィーチャー、またはそれ以降の任意のバージョンが Libertyで有効になっている場合、 HTTP/2 は、すべてのセキュア・ポートおよび非セキュア・ポートに対してデフォルトで有効になります。 Servlet 3.1 フィーチャーが Libertyで有効になっている場合、 HTTP/2 プロトコルは、すべてのセキュア・ポートおよび非セキュア・ポートに対してデフォルトで無効になります。 デフォルト設定をオーバーライドするには、 HTTP/2を使用するように Liberty サーバーの個々のポートを構成します。

HTTP/2 プロトコルは、Servlet 3.0 以前で使用できるオプションではありません。

Servlet 4.0 フィーチャーまたはそれ以降のいずれかのバージョンが有効になっていて、 httpEndpoint 定義に HTTP/2 を使用しない場合は、 Liberty server.xml 構成ファイルの httpEndpoint エレメントに protocolVersion = "http/1.1" 属性を追加します。

<httpEndpoint httpPort="9080"
              httpsPort="9043"
              id="defaultHttpEndpoint"
              protocolVersion="http/1.1">
</httpEndpoint>

Servlet 3.1 フィーチャーを使用可能にしていて、 HTTP/2 httpEndpoint 定義を使用する場合は、 protocolVersion = "http/2" 属性を Liberty server.xml 構成ファイルの httpEndpoint エレメントに追加します。

<httpEndpoint httpPort="9080"
              httpsPort="9043"
              id="defaultHttpEndpoint"
              protocolVersion="http/2">
</httpEndpoint>
server.xml ファイル構成の新しい属性
httpEndpoint エレメントのオプション属性を以下のように使用します。
属性
protocolVersion
指定可能な値
"http/1.1"または"http/2"
説明
Servlet 4.0 またはそれ以降のいずれかのバージョンがフィーチャーとして有効になっている場合は、この属性を "http/1.1" に設定して、 httpEndpoint エレメントに定義したポートの HTTP/2 処理を無効にします。 Servlet 3.1 がフィーチャーとして有効になっている場合、 httpEndpoint エレメントに定義されているポートに対して HTTP/2 処理を有効にするには、この属性を "http/2" に設定します。