HTTP / 2 tem muito mais TTFB que HTTP / 1.1

2

Alguém já teve esse problema com o HTTP / 2 no IIS10. Eu tenho uma VM configurada no Azure com um site no IIS10. Configurei o SSL etc. e testei o site em HTTP / 2, desliguei o SSL e testei no mesmo navegador com o HTTP / 1.1. O resultado foi inesperado, o HTTP / 1.1 superou o HTTP / 2 BIG TIME!

Os testes foram feitos nas mesmas máquinas, exatamente na mesma página da Web (contém muitos recursos para carregar) e a única coisa que mudou foi o protocolo.

Resultados HTTP / 2:

ResultadosdoHTTP/1.1:

Como você pode ver, o HTTP / 1.1 supera o HTTP / 2 e, para mim, parece que o servidor está demorando um tempo extraordinário para responder às solicitações (verde - Tempo para o primeiro byte).

Alguma idéia?

    
por Daniel Wardin 23.06.2015 / 11:16

1 resposta

2

A diferença está em como o HTTP / 1 e o HTTP / 2 configuram os soquetes para rede.

No HTTP / 1, o navegador faz uma solicitação para um único ativo e, em seguida, aguarda o download desse recurso antes de fazer a próxima solicitação. Isso é muito lento, então, para contornar isso, os navegadores começaram a multiplexar suas solicitações e fazer de 6 a 8 solicitações por vez, dividindo a largura de banda entre as solicitações de 6 a 8.

No HTTP / 2, o navegador abre um único soquete, faz todas as solicitações e aguarda que todos os recursos sejam transmitidos na maior largura de banda disponível.

A razão pela qual você deveria ver um TTFB alto é porque, em HTTP / 1, cada solicitação é um soquete separado, mas no HTTP / 2, todas as solicitações são baixadas através do fluxo único. Você pode ter feito as solicitações, mas precisa esperar que o servidor responda com todos os dados solicitados.

Em teoria, o HTTP / 2 deve ser mais rápido porque é mais eficiente - você não tem a sobrecarga de abrir um novo soquete para cada solicitação. Você está transmitindo todos os dados por um único canal de dados e pode priorizar solicitações com base em como a página deve ser carregada.

Na prática, isso depende de o navegador fazer solicitações priorizadas de maneira adequada e a rede permitir largura de banda total para o fluxo de soquete único e não limitar as solicitações artificialmente.

Além disso, como você declarou que está fazendo HTTP / 1 não criptografado e HTTP / 2 criptografado, a criptografia causará sobrecarga adicional e perda de desempenho. Você pode tentar fazer HTTP / 1 criptografado para uma melhor comparação.

    
por 05.06.2018 / 22:41