Qualcuno sa qual è la versione più bassa di Tomcat che supporta HTTP/2.0? Ho cercato ovunque sul loro sito e non riesco a trovare dettagli in merito.Supporto Tomcat per HTTP/2.0?
risposta
Sono l'implementatore HTTP/2 in Jetty e guardo altri progetti che implementano HTTP/2.
Tomcat's Mark Thomas ha outlined support for HTTP/2 for Tomcat 9.
Aggiornamento gennaio 2017: Tomcat 8.5 supporta i protocolli HTTP/2 vedere @ joe-Aldrich risposta https://stackoverflow.com/a/37889873/2027465
Considerando che Servlet 4.0 sta per avere come un 2 di supporto/HTTP di destinazione, e che il supporto HTTP/2 richiede il supporto ALPN nel JDK (che anche io sono coinvolto), e che il supporto ALPN nel JDK è programmato per JDK 9, probabilmente ci vorrà molto tempo prima che tutto ciò si materializzi.
Tuttavia, tenere presente che altri contenitori Servlet forniscono già il supporto HTTP/2.
Jetty 9.3.0 ha pieno, robusto, support for HTTP/2, client e server. Abbiamo eseguito HTTP/2 sul nostro sito Web da molti mesi e riteniamo che la produzione di supporto HTTP/2 sia pronta. Le API HTTP/2 Push di Jetty sono prese in considerazione per l'inclusione in Servlet 4.0. HTTP/2 Push è già disponibile per le applicazioni distribuite su Jetty in modo trasparente (tramite un filtro Servlet).
Undertow ha anche un'implementazione per HTTP/2.
Netty ha anche uno, ma non è basato sulle API Servlet.
Tomcat 8.5 è stato rilasciato con funzionalità back-ported da Tomcat 9 e include supporto HTTP/2.
AFAIK, il supporto Tomcat 8.5 di HTTP/2 è basato su Tomcat Native. –
L'utilizzo di h2 in Tomcat 8.5 con i connettori NIO o NIO2 attualmente richiede ancora l'uso di OpenSSL per TLS. Tuttavia, Tomcat 8.5 supporta anche clear text h2c che non richiederebbe Tomcat Native per OpenSSL (sebbene i browser abbiano scelto di non implementare il supporto h2c). –
nativo? vuol dire che il tomcat incorporato su spring boot non sarà in grado di fornire http2? – lrn2prgrm
L'ultima versione di Tomcat (version 9) supporta completamente HTTP/2. Tuttavia, poiché tutti i principali browser implementano solo HTTP/2 over TLS, è necessario configurare Tomcat per consentire ciò. Questo articolo spiega TLS configuration in Tomcat, ma ecco il sommario.
Aprire il file conf/server.xml
ed effettuare le seguenti modifiche alla configurazione.
<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>
Per utilizzare HTTP/2 con Tomcat è necessario abilitare HTTPS come indicato nei collegamenti sopra. Ecco una semplice guida su come farlo: https://readlearncode.com/configure-tomcat-9-for-http2/ – Alex
Sto provando ad abilitare h2 in primavera boot tomcat incorporato. Ho HTTPS e l'addUpgradeProtocol (nuovo HTTP2Protocol()) comunque ottengo sempre ... un connettore che non supporta ALPN dovrei aprire una nuova domanda? – lrn2prgrm