Suite à l'annonce précédente, la prise en charge de la fonctionnalité Server Push HTTP/2 sera désactivée par défaut dans Chrome 106 et les autres navigateurs basés sur Chromium dans leurs prochaines versions.
Pourquoi cette vidéo est-elle supprimée ?
Le push de serveur HTTP/2 permettait aux sites Web d'envoyer de manière proactive les ressources dont la page avait besoin au lieu d'attendre qu'elles soient demandées. Cependant, comme Jake Archibald l'a décrit précédemment, cette approche était problématique et les avantages en termes de performances étaient souvent difficiles à réaliser. Par conséquent, elle n'a pas été beaucoup utilisée, seulement 1,25 % des sites HTTP/2 ayant recours à cette fonctionnalité.
L'analyse de l'utilisation de la fonctionnalité Server Push de HTTP/2 donne des résultats mitigés (Chrome, Akamai), sans gain net de performances et, dans de nombreux cas, avec une régression des performances.
Le mode Push n'était pas mis en œuvre sur de nombreux serveurs et clients HTTP/3, même s'il était inclus dans la spécification. Pour une grande partie du Web qui utilise le nouveau protocole HTTP/3, le push a déjà été abandonné. Lorsque nous avons réexécuté cette analyse plus récemment, nous avons constaté que la compatibilité HTTP/2 des sites était passée de 1,25 % à 0,7 %.
Alternatives à Server Push HTTP/2
Les 103 Early Hints sont une alternative beaucoup moins sujette aux erreurs, qui présente de nombreux avantages similaires à ceux de Push, mais beaucoup moins d'inconvénients. Au lieu que le serveur envoie des ressources, les 103 Early Hints n'envoient que des indices au navigateur sur les ressources qu'il peut être utile de demander immédiatement. Le navigateur peut ainsi décider s'il en a besoin ou non, par exemple s'il dispose déjà de ces ressources dans le cache HTTP.
Le préchargement des ressources critiques est une autre solution qui permet à la page et au navigateur de fonctionner ensemble pour charger les ressources critiques de manière préventive au début du chargement de la page. Bien que la page elle-même doive être envoyée en premier, ce qui n'est pas aussi rapide que le push du serveur ni les premiers indices, cette méthode présente l'avantage supplémentaire de ne pas retarder cette ressource de page critique, ce qui peut se produire avec ces deux solutions.
Conclusion
Le Web doit pouvoir essayer des choses et les supprimer lorsqu'elles ne sont plus utilisées. Bien que le potentiel de la fonctionnalité Push semble intéressant, son utilisation s'est avérée plus problématique que prévu. Cependant, nous avons beaucoup appris de Push pour la conception de 103 Early Hints. Il est maintenant temps de terminer la progression et de renoncer au mode Push.
Ressources
- Toutes les suppressions et abandons dans Chromium
- Enregistrement ChromeStatus : Suppression de la méthode push HTTP/2
- Intent to Remove : HTTP/2 et push de serveur gQUIC
- Problème Chromium : Désactivation de la méthode Push HTTP/2 par défaut