2015-03-31 18 views
18

Dopo alcune ricerche, sono rimasto sorpreso dal fatto che non ho trovato alcuna risorsa sul supporto HTTP/2 in Tomcat. I Changelog di 8.0 indicano un supporto sperimentale di SPDY e wiki fa riferimento a HTTP/2 come una specifica supportata (http://wiki.apache.org/tomcat/Specifications) ma non trovo alcun tutorial su di esso.Supporto HTTP/2 in Tomcat 8

Sapete se è già possibile abilitare HTTP/2 su Tomcat? Se la risposta è sì, come posso farlo?

+0

C'è una domanda qui? Idee su cosa? Spero tu non stia chiedendo dove trovare la documentazione ... perché è fuori tema !! –

+0

Ho aggiunto esplicitamente la domanda ... –

+0

possibile duplicato di [Configura SPDY su tomcat 8 windows] (http://stackoverflow.com/questions/28795470/configure-spdy-on-tomcat-8-windows) –

risposta

20

Tomcat non supporta ancora HTTP/2.

Il supporto HTTP/2 è pianificato per Tomcat 9 in poi. Potrebbe tornare alle versioni precedenti.

Il supporto SPDY sperimentale era proprio questo: sperimentale. Ha funzionato mentre i browser supportavano la versione specifica di SPDY, ma attualmente nessun browser supporta la versione di SDPY implementata da Tomcat.

Questo supporto sperimentale di SPDY è stato rimosso da Tomcat 8.0.22, indicato nello changelog.

4

HTTP/2 Support è ora disponibile in Tomcat. Tomcat-8.5 supporta HTTP/2. Per abilitare HTTP/2 in tomcat-8.5 o superiore è necessario aggiornare il protocollo del connettore nel file server.xml nella cartella conf tomcat.

<Connector ... > 
    <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> 
</Connector> 

È inoltre necessario impostare la configurazione dei certificati SSL per funzionare con questo connettore.

+1

Grazie! Come si esegue server-push? –

+0

Server Push può essere eseguito utilizzando l'API PushBuilder in Java. –

+0

Significa che non esiste alcuna API nativa che può essere utilizzata e di conseguenza è necessario il servlet 4? Inoltre, se questa affermazione è vera, possiamo sfruttare il server-push solo in tomcat 9 perché sembra che tomcat 8.5 usi ancora il servlet 3.1? –

7

Tomcat 8.5 è stato rilasciato con funzionalità back-ported da Tomcat 9 e include supporto HTTP/2.

Non ho ancora avuto la possibilità di configurare HTTP/2 su Tomcat 8.5, quindi non posso commentare il "come".

+0

L'how-to è qui: https: //tomcat.apache .org/tomcat-8.5-doc/config/http2.html – Paul

0

per consentire HTTP2 per tomcat8.5.x,

@Bean 
     public EmbeddedServletContainerCustomizer tomcatCustomizer() { 
     return container -> { 
      if (container instanceof TomcatEmbeddedServletContainerFactory) { 
       ((TomcatEmbeddedServletContainerFactory) container).addConnectorCustomizers((connector) -> { 
        connector.addUpgradeProtocol(new Http2Protocol()); 
       }); 
      } 
     }; 
    }