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