En un post anterior mostré una comparación entre el rendimiento HTTP2 y HTTP1 usando una única conexión (ver HTTP2 vs HTTP1 performance). En este post mostraré una comparativa entre HTTP2 y HTTP1 introduciendo latencia y mostrando cómo la latencia puede afectar a las peticiones del protocolo HTTP.
Cuando un cliente hace una petición, hay una latencia, mayor o menor dependiendo de las condiciones de la red (tráfico, distancia del servidor...); la latencia afecta mucho al protocolo HTTP 1.1, porque si tienes que enviar un montón de peticiones, debes enviar primero la petición, esperar respuesta del servidor, hacer la siguiente petición y así sucesivamente... por supuesto puedes usar más de 1 conexión, pero esto requiere más recursos del servidor y no escala bien.
El protocolo HTTP2 usa una única conexión para hacer todas las peticiones, así que la latencia afecta menos; puedes enviar múltiples peticiones sin esperar a que se procesen, por lo que el proceso es mucho más rápido.
Prueba de latencia HTTP2
Uso el servidor de prueba HTTP2 Golang gratuito para mostrar cómo la latencia afecta a HTTP/2 vs HTTP1.
Usando el protocolo HTTP2, solo tienes que enviar todas las peticiones al servidor y procesar las respuestas de forma asíncrona. El proceso es muy rápido y tarda menos de 1 segundo.
En el protocolo HTTP1, en cambio, las peticiones se envían una a una y antes de enviar otra petición debe esperar una respuesta del servidor, por lo que el proceso es lento.

Puedes descargar una muestra de demo sgcWebSockets ya compilada para windows desde el enlace inferior. Solo tienes que probar las diferentes opciones y comparar el rendimiento entre ambos protocolos.
