Contrôler et tirer parti du cache du navigateur

De nombreuses techniques d'optimisation sont déployées afin d'optimiser et d'accélérer les sites Web et d'eCommerce. Certaines sont basées sur des algorithmes de haut niveau tel que le traitement d'image tandis que d'autres sont basées sur une infrastructure importante tel que le CDN (Content Delivery Network).

Plus simplement, une des plus grosses ressources de stockage provient des navigateurs eux-mêmes et de leur cache. Tirer parti de cette ressource largement disponible est l'un des moyens les plus efficaces pour accélérer un site Web.

Piloter précisément le cache des navigateurs

Votre navigateur peut stocker toutes les pages et tous leurs composants dans un stockage dédié : le cache. Chaque fois que cela est possible, il les récupère à partir de son cache et évite ainsi d'émettre une requête et de télécharger les données depuis le serveur via Internet.

Cependant, il est obligatoire de contrôler correctement et précisément la durée de vie des objets stockés dans le cache. Sinon, des pages et des composants obsolètes peuvent être utilisés. Nous devons garder à l'esprit que des milliers ou même des millions de caches de navigateur sont hors de contrôle. Supposons qu'un mauvais objet ait été mis en cache avec une mauvaise durée de vie, il est impossible de le supprimer.

Les caches se comportent en fonction des directives de contrôle de cache fournies avec les données via l'entête HTTP. Elles indiquent si un objet peut être mis en cache ou non, comment il doit être valider contre le serveur et quelle est sa durée de vie.

Ces directives sont fournies automatiquement par UBfast en appliquant un profil de réponse.

De plus, UBfast va arbitrer la stratégie de caching en fonction du support émetteur de la requête (PC, Mobile, Tablette) et de la capacité de son cache. Ceci est une des nombreuses fonctionnalités automatiques de UBfast difficilement accessibles aux non-initiés.

Revalidation stricte

La revalidation stricte permet de s'assurer de la validité d'une page ou de l'un de ses composants avant de s'en servir. Cette validation est basé sur un échange décrit par le protocole HTTP. Le navigateur envoie une requête en y adjoignant des validateurs (date de mise à jour ou ETag). Si la donnée est à jour, le serveur ne renvoie qu'une simple entête avec le fameux status-code 304. Dans le cas contraire il envoie la donnée.

Cependant cette revalidation, même si elle est positive, nécessite l'aller-retour d'une requête-réponse. Même en négligeant le temps de transfert des entêtes, il reste le temps de propagation dans le réseau, le fameux round trip time.

Indiquer une durée de vie

Si on veut éliminer la requête de validation, il faut indiquer au navigateur la durée de vie des objets qu'il stocke dans son cache. Tant que la durée de vie n'est pas écoulée, la donnée est considérée comme fraiche et sera utilisée sans validation et donc sans émission de requête.

La durée de vie peut être indiqué soit directement sous forme d'une durée exprimée en seconde ou sous la forme d'une date d'expiration.

En savoir plus