Latência HTTP2

· Recursos

Em um post anterior, apresentei uma comparação entre o desempenho do HTTP2 e do HTTP1 usando uma única conexão (veja HTTP2 vs HTTP1 performance). Neste post vou mostrar uma comparação entre HTTP2 e HTTP1 introduzindo uma latência e demonstrando como ela pode afetar as requisições do protocolo HTTP.

Quando um cliente faz uma requisição, há uma latência, maior ou menor dependendo das condições da rede (tráfego, distância do servidor...). A latência afeta muito o protocolo HTTP 1.1, pois se você precisar enviar várias requisições, deve enviar a primeira, aguardar a resposta do servidor, fazer a próxima e assim por diante... é claro que você pode usar mais de 1 conexão, mas isso exige mais recursos do servidor e não escala bem.

O protocolo HTTP2 usa uma única conexão para fazer todas as requisições, portanto a latência afeta menos; você pode enviar múltiplas requisições sem esperar que sejam processadas, tornando o processo muito mais rápido.

Teste de Latência HTTP2

Uso o servidor de teste HTTP2 Golang gratuito para mostrar como a latência afeta o HTTP/2 vs HTTP1.

Usando o protocolo HTTP2, você só precisa enviar todas as requisições ao servidor e processar as respostas de forma assíncrona. O processo é muito rápido e leva menos de 1 segundo.

Já o protocolo HTTP1 envia as requisições uma a uma e, antes de enviar outra requisição, é necessário aguardar a resposta do servidor, tornando o processo lento.

Você pode baixar uma demo de exemplo do sgcWebSockets já compilada para Windows pelo link abaixo. Teste as diferentes opções e compare o desempenho entre ambos os protocolos.