Seguindo o anúncio anterior, o suporte a push do servidor HTTP/2 será desativado por padrão no Chrome 106 e em outros navegadores baseados no Chromium nas próximas versões.
Por que ele está sendo removido?
O envio por push do servidor HTTP/2 aos sites permitiu que os sites enviassem proativamente os recursos necessários para a página em vez de esperar que eles fossem solicitados. No entanto, ela era problemática, como Jake Archibald escreveu anteriormente, e os benefícios de desempenho geralmente eram difíceis de notar. Consequentemente, ele não foi muito usado, somente 1,25% dos sites HTTP/2 utilizaram esse recurso.
A análise do uso do envio push do servidor HTTP/2 apresenta resultados mistos (Chrome, Akamai), sem um claro ganho de desempenho líquido e, em muitos casos, regressões de desempenho.
O envio por push não foi implementado em muitos servidores e clientes HTTP/3, embora tenha sido incluído na especificação. Para grande parte da Web que usa o HTTP/3 mais recente, o Push já foi desativado. Ao executar essa análise mais recentemente, vemos que o suporte a HTTP/2 por sites caiu para 0,7%.
Alternativas ao envio por push do servidor HTTP/2
103 Dicas iniciais é uma alternativa muito menos propensa a erros, com muitas vantagens iguais às de Push e muito menos desvantagens. Em vez de o servidor enviar recursos, o 103 Early Hints envia apenas dicas para o navegador de recursos dos quais ele pode se beneficiar da solicitação imediata. Isso deixa o navegador no controle de decidir se precisa deles ou não — por exemplo, se ele já tiver esses recursos no cache HTTP.
O pré-carregamento de recursos críticos é outra alternativa que permite que a página e o navegador trabalhem juntos para carregar recursos críticos preventivamente no início do carregamento de página. Embora isso exija que a própria página seja enviada primeiro, ou seja, não é tão rápido quanto o push do servidor ou as dicas iniciais, ele tem a vantagem adicional de não atrasar esse recurso crítico da página, o que pode acontecer com essas duas soluções.
Conclusão
A Web precisa ter a capacidade de testar coisas e descartá-las quando não forem usadas. Embora o potencial do Push parecia ótimo, na realidade usá-lo era mais problemático do que o previsto. No entanto, aprendemos muito com Push que foi incluído no design do 103 Early Hints. Agora é hora de concluir a progressão e sair de Push.
Links relacionados
- Todas as descontinuações e remoções no Chromium
- Entrada do ChromeStatus: Remover push do HTTP/2
- Intent de remoção: HTTP/2 e push do servidor gQUIC
- Problema do Chromium: desativar a push HTTP/2 por padrão
Agradecimentos
Imagem principal por Scott Rodgerson no Unsplash