In un post precedente, ho mostrato un confronto tra le prestazioni di HTTP2 e HTTP1 usando una singola connessione (vedi HTTP2 vs HTTP1 performance). In questo post mostrerò un confronto tra HTTP2 e HTTP1 introducendo una latenza e mostrando come la latenza possa influenzare le richieste del protocollo HTTP.
Quando un client effettua una richiesta, c'è una latenza, più o meno a seconda delle condizioni di rete (traffico, distanza dal server...), la latenza influenza molto il protocollo HTTP 1.1, perché se devi inviare un mucchio di richieste, devi prima inviare la richiesta, attendere la risposta del server, fare la richiesta successiva e così via... ovviamente puoi usare più di 1 connessione, ma questo richiede più risorse dal server e non scala bene.
Il protocollo HTTP2 usa una singola connessione per effettuare tutte le richieste, quindi la latenza influisce meno, puoi inviare più richieste senza attendere che vengano elaborate, quindi il processo è molto più veloce.
Test di latenza HTTP2
Uso il server di test gratuito HTTP2 Golang per mostrare come la latenza influenzi HTTP/2 vs HTTP1.
Usando il protocollo HTTP2, devi solo inviare tutte le richieste al server ed elaborare le risposte in modo asincrono. Il processo è molto veloce e richiede meno di 1 secondo.
Con il protocollo HTTP1 invece, le richieste vengono inviate una per una e prima di inviare un'altra richiesta, devi attendere una risposta dal server, quindi il processo è lento.

Puoi scaricare un esempio demo di sgcWebSockets già compilato per Windows dal link qui sotto. Basta testare le diverse opzioni e confrontare le prestazioni tra i due protocolli.
