Comparação de desempenho de HTTP/1.1, HTTP/2 e HTTP/2 + Server Push

Publicado resultados do estudo sobre o desempenho de diferentes métodos de extração de coleções de recursos, usando protocolos HTTP/1.1, HTTP/2 e HTTP/2 + Server Push para se comunicar com o servidor. O estudo também avaliou o impacto do cache do navegador nas solicitações de dados e a manipulação de recursos a nível da lógica do aplicativo (agregando recursos em um único bloco JSON).

Os testes de desempenho de 25 solicitações mostraram resultados, em geral, previsíveis — um atraso notável na solicitação via HTTP/1.1 com cache vazio e a entrega de recursos em um único bloco (testes com a etiqueta "compound"). O desempenho do Firefox e do Chrome estava aproximadamente no mesmo nível, mas a presença de dados no cache não resultou no aumento de eficácia esperado.

Comparação de desempenho de HTTP/1.1, HTTP/2 e HTTP/2 + Server Push

No entanto, no teste de processamento de 500 solicitações, um atraso notável do Chrome em relação ao Firefox surgiu ao transmitir um grande número de solicitações, e um atraso do Firefox em relação ao Chrome ao aplicar o mecanismo Server Push e no cenário de uso do HTTP/2 com a maior parte dos dados no cache do navegador. O Chrome demonstrou uma operação mais eficiente com o cache, enquanto o Firefox teve um processamento mais eficiente de solicitações externas.

Comparação de desempenho de HTTP/1.1, HTTP/2 e HTTP/2 + Server Push

Comparação de desempenho de HTTP/1.1, HTTP/2 e HTTP/2 + Server Push

Como resultado dos testes, concluiu-se que o HTTP/2 permite processar de forma bastante eficaz solicitações individuais de uma grande coleção de recursos. As diferenças de desempenho entre os esquemas simples de entrega separada de recursos e os métodos em que os recursos são agregados em um único bloco não são tão significativas para justificar uma complexidade considerável na lógica de processamento do lado do aplicativo e servidor. A agregação só faz sentido em situações onde o desempenho é a maior prioridade. Quando a simplificação da lógica e uma API simples são mais importantes, faz sentido usar o processamento separado de recursos.

Outra conclusão é que o cache do navegador, ao usar HTTP/2, não tem um impacto significativo no desempenho do processamento de requisições (a execução completa de 501 requisições foi 1,2 vezes mais lenta do que a execução de 51 requisições com 90% do cache preenchido no Firefox e 2,3 vezes mais lenta no Chrome). O uso do Server Push não mostrou benefícios significativos no Firefox, mas foi eficaz ao carregar um grande número de recursos no Chrome. Os autores do estudo também observaram que a otimização da parte do servidor tem um impacto mais significativo no desempenho do que a otimização do código do cliente executado no navegador.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster