Remover o envio push de servidor HTTP/2 do Chrome

Seguindo o anúncio anterior, o suporte ao envio push de 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 isso está sendo removido?

O envio push de servidor do 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 HTTP/2 Server Push tem resultados mistos (Chrome, Akamai), sem um ganho líquido claro de desempenho 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 grande parte da Web que usa o HTTP/3 mais recente, o push já foi desativado. Ao executar essa análise mais recentemente, notamos que 1,25% do suporte a HTTP/2 por 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 de 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 críticos é outra alternativa que permite que a página e o navegador trabalhem juntos para carregar recursos críticos de forma preventiva no início do carregamento da página. Embora isso exija que a própria página seja enviada primeiro (por isso não é tão rápido quanto o envio 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 as 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 parecia ótimo, na realidade usá-lo foi mais problemático do que se imaginava. No entanto, aprendemos muito com o Push que foi usado no design do 103 Early Hints. Agora é hora de concluir a progressão e se afastar do Push.

Recursos