Edge Side Include, le futur des sites dynamiques à forte charge

Le 10 février 2008 , par Benjamin Sonntag,

Toujours à l’affut des dernières possibilités dans le monde de l’optimisation des sites web, nous utilisons depuis peu le concept d’Edge Side Include pour quelques uns de nos clients qui disposent de sites à forte charge.

La norme ESI maintenue par le consortium W3C (à l’origine des normes HTML et XHTML.) Elle décrit un langage de balises de bases qui permettent à un serveur mandataire (reverse proxy), situé en frontal d’un ou plusieurs serveurs web, de reconstruire une page web à partir de plusieurs éléments distincts.

Ainsi, si une page web contient une partie "statique", non dépendante d’un compte connecté ou du temps qui passe, et une partie "mobile" qui dépend par exemple de l’état de connexion d’un utilisateur ou du temps qu’il fait, ESI permettra au serveur proxy de garder en cache différemment chacune des parties de la page, et reconstruira la page entière avant de l’envoyer à l’internaute.

ESI permet typiquement d’effectuer des conditions (if) simples et des inclusions de blocs de page (include)

Exemple et documents de référence :

On peut donc construire une page non plus dans son intégralité sur le serveur d’application, mais en partie uniquement, et laisser à d’autres parties de l’application le soin de calculer le reste de la page, grâce à une syntaxe du type :

 <esi:include src="/userbloc" onerror="continue"/>  

Le langage ESI est décrit dans sa version 1.0 sur le site du W3C

Il est donc possible, typiquement, de structurer une page web de contenu comme ceci :


 <html>
  <body>
  mettez ici le code de votre page web, code commun à tous les internautes (connectés ou non)
  lorsque vous avez besoin, par exemple de la boite décrivant le compte de l'utilisateur connecté, mettez :
      <esi:include src="/userbox" />
   Continuez avec votre code html commun comme si de rien n'était
   Si vous avez besoin à nouveau d'un bloc spécifique (par exemple pour ajouter des éléments de menu) utilisez à nouveau esi include :
      <esi:include src="/usermenu" />
   et finissez votre page
 </body>
 </html>

Les pages /userbox et /usermenu étant, quant à elle, totalement dynamiques et dépendantes de l’utilisateur connecté (donc surement de son cookie d’authentification etc.)

Ainsi, votre reverse-proxy pourra garder en cache très longtemps la page principale, et ne mettre à jour que les blocs spécifiques, voire les mettre en cache aussi, mais moins longtemps, conformément à sa configuration ...

Dans un prochain article, nous mettrons en oeuvre ce principe dans Varnish, excellent reverse-proxy en logiciel libre, qui écrase joyeusement Apache-mod-proxy ou squid dans ce domaine ...

 

Portfolio

 

Sur l'OctoBlog

Logiciels Libres ?

Acteurs du Libre les membres de l’équipe Octopuce participent à divers projets, soit au nom de l’entreprise soit en leur nom propre, sur le temps offert à l’équipe pour conduire des projets personnels.

Nous avons contribué, dès ses débuts, à la conception et mise en oeuvre de la plateforme AlternC, panneau de contrôle web sur une bases 100% libre. Cette plateforme nous la proposons pour votre hébergement mutualisé ou dédié. De la même manière est né Dmanager, logiciel de partage de fichiers via internet.

C’est ainsi que pour vos projets Octopuce privilégie le choix de solutions et logiciels libres quand ceux-ci répondent à vos besoins. L’ensemble des développements réalisés pour vous sous licence libre sont mis à la disposition de tous.

Une référence ?

Au Sénégal, le Réseau Enda Graf Diapol fait appel à nos services de serveur dédié et de Webradio pour proposer aux acteurs du développement, en Afrique et au delà une visibilité à échelle mondiale à travers un partage de ressources.

Première Ville Internet de France, récompensée depuis 2003 par le label ville-internet 5 arobases, Vandœuvre Lès Nancy utilise nos services de serveurs dédiés, de mise en place de réseaux wifi (intérieurs et extérieurs), de conception d’applications webisées.