2015-04-01 11 views
9

C'è un modo per dire a Chrome o Safari di utilizzare HTTP/2 su un URL/indirizzo/server specifico?Forza HTTP/2 con Chrome o Safari

Voglio dire cambiando alcune impostazioni o simili, non implementando ALPN sul socket del server o qualunque cosa sia necessaria. Voglio provare HTTP/2 su un socket del server senza aspettare finché non posso avere la negoziazione ALPN per dire ai browser di usare HTTP/2.


Precisazione: Ho abilitato HTTP/2 su Chrome (ovvero SPDY/4 tramite chrome: // flags). Non esegue ancora il probe del socket (TLS o testo normale) per HTTP/2 tramite Upgrade. Voglio forzare Chrome a farlo, oppure assumere immediatamente HTTP/2.

Inoltre, ho letto che Chrome non supporterà HTTP/2 su connessioni in chiaro, anche se lo standard HTTP/2 lo consente. Ma forse c'è un modo per aggirare questo.

risposta

9

HTTP/2 su TLS e HTTP/2 su TCP sono stati definiti come 2 protocolli diversi, identificati rispettivamente da h2 e h2c.

Chrome supporta solo h2 in questo momento.

Se si dispone di un server che implementa solo H2C, il modo più semplice per collegare Chrome ad esso è quello di utilizzare un proxy inverso tale modalità bridge nghttpx in HTTP/2 di fronte al vostro server di

+0

Grazie per la risposta. Ma: voglio provare HTTP/2 su un socket del server senza aspettare finché non posso avere la negoziazione ALPN per dire ai browser di usare HTTP/2. –

+0

Non devi "aspettare" per ALPN e non ti costa nulla più di un normale handshake TLS: invece di selezionare semplicemente la versione del protocollo TLS, il server seleziona sia il protocollo TLS che il protocollo dell'applicazione (es. il browser annuncia il supporto per TLS 1.1, TLS 1.2, HTTP/1.1, SDPY/3.1, H2, il server seleziona TLS 1.2 e H2 per la sessione, HTTP/2 su un socket in chiaro è chiamato h2c e non è supportato da chrome – rluta

+0

Ciò che intendo per "wait" è questo: la "piattaforma" che uso, Java, al momento non ha il socket TLS ALPN, ma alla fine, non riuscirà a immaginare di non averlo a un certo punto. per utilizzare direttamente HTTP/2, non avrei bisogno di ALPN. Cf http://stackoverflow.com/questions/29399182/java-http-2-server-socket –

0

Per quanto ne so, è probabile che si tratti di un'impostazione a livello di browser. In Chrome è possibile attivare SPDY4, vedere chrome://flags

Per quanto riguarda il safari va supporto è stato aggiunto a partire dalla versione 8.

Alla fine è tutta una questione di sapere se o non si parla la stessa lingua del server . Se stai usando http puoi controllarlo usando l'intestazione Upgrade. Ci sono alcuni plugin che puoi usare con chrome per darti l'indicazione se l'indirizzo che stai visitando supporta http/2.

Per ulteriori informazioni sulla http/2 protocollo stesso si dovrebbe verificare https://http2.github.io/http2-spec/#starting