web-dev-qa-db-fra.com

Prise en charge de Tomcat pour HTTP / 2.0?

Quelqu'un sait-il quelle est la version la plus récente de Tomcat qui prend en charge HTTP/2.0? J'ai cherché partout sur leur site et je ne trouve aucun détail à ce sujet.

40
Asher Johnson

Je suis l'implémenteur HTTP/2 dans Jetty, et je regarde d'autres projets implémentant HTTP/2.

Mark Thomas de Tomcat a décrit la prise en charge de HTTP/2 pour Tomcat 9 .

Mise à jour de janvier 2017 : Tomcat 8.5 prend en charge HTTP/2 voir la réponse @ joe-aldrich https://stackoverflow.com/a/37889873/ 2027465

Étant donné que Servlet 4.0 va avoir comme support HTTP/2 cible, et que le support HTTP/2 nécessite le support ALPN dans le JDK (auquel je participe également), et que le support ALPN dans le JDK est prévu pour JDK 9, il faudra probablement beaucoup de temps avant que tout cela se matérialise.

Cependant, sachez que d'autres conteneurs de servlets fournissent déjà une prise en charge HTTP/2.

Jetty 9.3. a complet, robuste, support pour HTTP/2 , client et serveur. Nous utilisons HTTP/2 sur notre propre site Web depuis plusieurs mois maintenant et nous considérons que la prise en charge de la prise en charge HTTP/2 est prête. Les API HTTP/2 Push de Jetty sont envisagées pour inclusion dans Servlet 4.0. HTTP/2 Push est déjà disponible pour les applications déployées sur Jetty de manière transparente (via un filtre de servlet).

ndertow a également une implémentation pour HTTP/2.

Netty en a également un, mais il n'est pas basé sur les API de servlet.

67
sbordet

Tomcat 8.5 a été publié avec des fonctionnalités back-portées depuis Tomcat 9 et inclut la prise en charge HTTP/2.

23
Joe Aldrich

La dernière version de Tomcat ( version 9 ) prend entièrement en charge HTTP/2. Cependant, comme tous les principaux navigateurs n'implémentent que HTTP/2 sur TLS , vous devrez configurer Tomcat pour autoriser cela. Cet article explique configuration TLS dans Tomcat , mais voici le résumé.

Ouvrez le conf/server.xml fichier et apportez les modifications de configuration suivantes.

<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