web-dev-qa-db-ja.com

HTTP / 2.0のTomcatサポート?

HTTP/2.0をサポートするTomcatの最低バージョンは誰か知っていますか?私は彼らのサイトのいたるところを見てきましたが、これに関する詳細を見つけることができません。

40
Asher Johnson

私はJettyのHTTP/2実装者であり、HTTP/2を実装する他のプロジェクトにも注目しています。

TomcatのMark Thomasには Tomcat 9のHTTP/2のサポートの概要 があります。

2017年1月更新:Tomcat 8.5はHTTP/2をサポートします@ joe-aldrichの回答を参照 https://stackoverflow.com/a/37889873/ 2027465

サーブレット4.0がターゲットHTTP/2サポートを持ち、HTTP/2サポートにはJDKのALPNサポート(これも私が関与している)が必要であり、JDKのALPNサポートはJDK 9に予定されていることを考慮するとすべてが実現するまでには、おそらく長い時間がかかるでしょう。

ただし、他のサーブレットコンテナはすでにHTTP/2サポートを提供していることに注意してください。

Jetty 9.3. は完全かつ堅牢であり、 HTTP/2のサポート はクライアントとサーバーです。私たちは何ヶ月も前から自分のウェブサイトでHTTP/2を実行してきましたが、HTTP/2サポートの生産準備は整っていると考えています。 JettyのHTTP/2 Push APIは、Servlet 4.0に含めることを検討しています。 HTTP/2プッシュは、(サーブレットフィルターを介して)透過的な方法でJettyにデプロイされたアプリケーションですでに利用可能です。

ndertow にはHTTP/2の実装もあります。

Netty もありますが、サーブレットAPIに基づいていません。

67
sbordet

Tomcat 8.5は、Tomcat 9からバックポートされた機能とともにリリースされており、HTTP/2サポートが含まれています。

23
Joe Aldrich

Tomcatの最新バージョン( バージョン9 )は、HTTP/2を完全にサポートしています。ただし、すべての主要なブラウザーは HTTP/2 over TLS のみを実装しているため、これを許可するにはTomcatを構成する必要があります。この記事では TomcatでのTLS構成 について説明しますが、概要は次のとおりです。

conf/server.xmlファイルを作成し、次の構成変更を行います。

<Connector port="8443"
  protocol="org.Apache.coyote.http11.Http11AprProtocol"
  maxThreads="150" SSLEnabled="true">
    <UpgradeProtocol className="org.Apache.coyote.http2.Http2Protocol"/>
    <SSLHostConfig honorCipherOrder="false">
        <Certificate certificateKeyFile="conf/ca.key"
          certificateFile="conf/ca.crt"/>
    </SSLHostConfig>
</Connector>
8
Alex Theedom