Optez pour le cache intelligent !
Les solutions de cache sont la base pour réduire les temps de chargement.
Nous avons donc développé des fonctionnalités de cache avancées afin de rendre « cachable » un maximum de ressources et de pages :
découvrez les petits plus de notre cache HTTP, le SmartCache ou encore le Cookieless Cache !
Le cache HTTP
Fasterize propose des fonctionnalités de cache HTTP afin de servir le contenu plus rapidement à la place des serveurs d’origine, et cacher les objets que nous optimisons (et qui n’existent pas sur le site d’origine). Par défaut, tous les objets statiques sont cachés.
Depuis l’interface, vous :
- Ajoutez facilement des règles pour cacher d’autres éléments, notamment les pages HTML. Les expressions régulières appliquées aux URL vous permettent de cacher en 2 clics toutes vos pages produits ou tous les articles.
- Définissez facilement la durée de vie dans le cache pour chaque groupe de pages.
- Excluez certaines pages ou certains objets du cache.
- Segmentez automatiquement votre cache en intégrant la classification des User-Agents dans la clé de cache afin de faire cohabiter facilement une page mobile et une page desktop (en savoir +).
- Cachez toutes les versions de vos pages (selon le pays, selon le magasin …) en paramétrant simplement un cookie (en savoir +).
NOS PETITS +
Le cache HTTP étant loin de nous suffire, nous y avons apporté des améliorations :
- La couche TCP de chacun de nos serveurs est optimisée (initcwnd, tcp_slow_start_after_idle).
- Nos caches sont des caches situés en mémoire. Nous avons développé notre propre module Nginx qui s’adosse au renommé memcached pour servir tout le contenu caché.
- Nos caches sont distribués mais contrairement à d’autres, il n’y a pas de problèmes de réplication car nous utilisons un algorithme de consistent hashing. Chaque objet est dirigé vers un seul noeud de cache. C’est l’assurance d’avoir une origine bien mieux protégée et de ne plus avoir à faire des refresh pour remplir les caches !
Le SmartCache
Le SmartCache permet de mettre en cache sur Fasterize les pages dynamiques. Nous analysons vos pages et identifions les parties dynamiques grâce à des sélecteurs CSS (#cart
, .stock
, div .price
par exemple). Les parties statiques sont cachées tandis que les parties dynamiques sont chargées en JSONP dans un second temps et automatiquement. L’impact de Fasterize est en moyenne 42% plus fort en intégrant le SmartCache, en comparaison à la version Fasterizée « light« . QUELLES DIFFÉRENCES AVEC LES ESI ?
Le principe du SmartCache (le cache à trou) est très similaire à celui des ESI. Il y a pourtant deux points qui les différencient :
ESI | SmartCache | |
---|---|---|
Reconstitution de la page | Sur le serveur de cache | Sur le navigateur |
Mise en place | Intégration de tags dans les templates | Identification des zones dynamiques directement dans la configuration Fasterize |
Et en termes de maintenance, inutile de modifier les templates, tout est configuré chez Fasterize.
Le Cookieless Cache
Souvent, les pages dynamiques « non cachables » sont identiques – tant que le client n’a pas rempli son panier sur un site e-commerce, par exemple. La page peut être alors identique la majorité du temps, mais être identifié comme « non cachable » et ré-optimisée inutilement.
Le Cookieless Cache, ou le cache pour les utilisateurs sans cookie, permet de distinguer les utilisateurs “anonymes” pour le site (donc sans cookies) des utilisateurs connus pour le site (avec cookies).
Notre moteur met en cache les pages servies aux utilisateurs anonymes pour ensuite les servir depuis ce même cache aux utilisateurs anonymes suivants. Les utilisateurs identifiés par un cookie recevront quant à eux la page (personnalisée) depuis le serveur d’origine.
Le cache navigateur
Sur Fasterize, nous intégrons une gestion simplifiée des règles de cache. En un clic, vous pouvez régler le temps de rétention des ressources statiques dans le cache, côté Fasterize et côté navigateur.
LE DYNAMIC CACHE
Afin d’éviter que notre moteur optimise inutilement des pages dynamiques mais souvent identique, le moteur garde une copie de la page optimisée pendant une minute. Cette copie est associée au hash de la réponse d’origine.
Avant chaque optimisation, le moteur vérifie qu’il n’a pas déjà optimisé la page dans la minute précédente. Si c’est le cas, le moteur sert la version déjà optimisée et évite une nouvelle optimisation. Cela réduit en moyenne de 60ms de temps d’optimisation.