Optimisation de l'efficacité du contenu

Ilya Grigorik
Ilya Grigorik

La portée, l'ambition et les fonctionnalités de nos applications Web ne cessent de croître. Et c'est une bonne chose. Cependant, la montée en puissance d'un Web plus riche génère une autre tendance: la quantité de données téléchargées par chaque application continue d'augmenter à un rythme constant. Pour offrir d'excellentes performances, nous devons optimiser la livraison de chaque octet !

À quoi ressemble une application Web moderne ? L'archive HTTP peut nous aider à répondre à cette question. Ce projet permet de suivre la conception du Web en explorant périodiquement les sites les plus populaires (plus de 300 000 dans la liste Alexa Top 1M). Il enregistre et regroupe les analyses sur le nombre de ressources, les types de contenus et d'autres métadonnées pour chaque destination.

Tendances de l'archive HTTP

50e centile 75e centile 90e centile
HTML 13 Ko 26 Ko 54 Ko
Images 528 Ko 1 213 ko 2 384 ko
JavaScript 207 Ko 385 Ko 587 Ko
CSS 24 Ko 53 Ko 108 Ko
Autre 282 Ko 308 Ko 353 Ko
Total 1 054 ko 1 985 Ko 3 486 ko

Les données ci-dessus illustrent la tendance de l'augmentation du nombre d'octets téléchargés pour les destinations populaires sur le Web entre janvier 2013 et janvier 2014. Bien sûr, tous les sites ne se développent pas au même rythme ou ne nécessitent pas la même quantité de données, c'est pourquoi nous mettons en évidence les différents quantiles de la distribution: 50e (médiane), 75e et 90e.

Au début de l'année 2014, un site médian est composé de 75 requêtes qui totalisent jusqu'à 1 054 Ko d'octets transférés, et le nombre total d'octets (et de requêtes) augmente à un rythme constant tout au long de l'année précédente. Cette situation ne devrait pas être surprenante, mais elle a d'importantes répercussions sur les performances: oui, le débit Internet s'accélère, mais il s'accélère à des vitesses différentes selon les pays. De plus, de nombreux utilisateurs sont encore soumis à une limite de consommation des données et à des forfaits facturés à l'usage, en particulier sur les mobiles.

Contrairement à leurs homologues de bureau, les applications Web ne nécessitent pas de processus d'installation distinct: il vous suffit de saisir l'URL et tout est prêt. C'est l'une des principales fonctionnalités du Web. Cependant, pour cela, nous devons souvent récupérer des dizaines, voire des centaines, de ressources diverses, qui peuvent s'élever à plusieurs mégaoctets de données et doivent être rassemblées en centaines de millisecondes pour faciliter l'expérience Web instantanée que nous visons.

Atteindre une expérience Web instantanée en tenant compte de ces exigences n'est pas une mince affaire. C'est pourquoi il est essentiel d'optimiser l'efficacité du contenu: éliminer les téléchargements inutiles, optimiser l'encodage des transferts de chaque ressource à l'aide de diverses techniques de compression et exploiter la mise en cache autant que possible pour éliminer les téléchargements redondants.