Quels sont les avantages des sites statiques ?

L’éloge de la simplicité

Photo by insung yoon on Unsplash

Un peu d’histoire

Les sites Web se divisent en deux catégories, statiques et dynamiques. À l’origine du Web1, il n’y avait que des sites statiques, c'est-à-dire des pages HTML produites par des humains en écrivant du code2. Rapidement, le volume de contenu publié a augmenté et les sites dynamiques3 sont apparus : une base de données contenant les informations brutes et un langage serveur qui prépare les pages en prenant les données de la base. En ajoutant à cela un espace d’administration sécurisé permettant d’écrire le contenu dans la base de données, nous arrivons à l’architecture de la plupart des systèmes de gestion de contenu (Content Management System, CMS), comme WordPress, SPIP, Drupal ou Joomla. 

Le problème de la sécurité

Les sites Web dynamiques sont formidables, mais ce sont des objets technologiques bien plus sophistiqués qu’une simple collection de pages, qui présentent beaucoup plus de risques de sécurité1. Prenons l’exemple de WordPress. Il faut que le serveur dispose d’un moteur PHP, d’une base de données SQL, du logiciel WordPress, du thème (l’apparence graphique) utilisé pour le site et des extensions. Chacun de ces composants peut présenter des failles de sécurité. Dès qu’une vulnérabilité est décelée, elle fait l’objet d’un correctif, qui doit être déployé aussi vite que possible. Il faut donc administrer le serveur en mettant à jour rapidement ses diverses couches applicatives, sans quoi on s’expose à tous les risques cyber : déni de services, défiguration, vol de données, utilisation frauduleuse du serveur... Les sites statiques n’utilisent aucune de ces couches technologiques. Cela ne signifie pas qu’ils sont immunisés à toute attaque, mais la surface est bien moindre2 : il n’y a que le système d’exploitation (souvent GNU/Linux), le serveur Web (souvent NGINX) et l’accès pour déployer les fichiers (souvent SSH). C’est moins, donc c’est mieux.

Le ratio lecture / écriture

Dans de nombreux cas d’usage sur le Web, on écrit beaucoup moins qu’on ne lit. Un article sur un blog est publié par une personne une fois, et est ensuite lu par d’autres personnes de nombreuses fois. Il n’y a donc aucune utilité à reconstruire la page depuis la base de données à chaque consultation : le contenu n’a pas bougé depuis le visiteur précédent. Ce n’est pas le cas pour un forum, par exemple, dans lequel un sujet a certainement évolué depuis la dernière visite. Lorsque le ratio est très favorable à la lecture (beaucoup plus de lectures que d’écritures), les sites statiques sont très avantageux, puisque le contenu fourni par le serveur est un simple fichier déjà prêt, qui ne change que quand on modifie réellement son contenu.

La gestion du contenu

On peut produire du contenu statique en codant directement les pages, mais ce n’est pas très pratique. Deux outils s’articulent pour une bonne expérience utilisateur : le générateur de site statique (Static Site Generator, SSG1,2,3) et le CMS “headless”. Le générateur de site statique prend des fichiers texte tout simples et prépare les pages HTML automatiquement. Cela permet de séparer la forme et le fond, et d'accélérer la production. Le CMS headless est un système de gestion de contenu qui n’a pas de front-end, pas de site accolé. On peut appeler ça un système de gestion de contenu décentralisé, dans le sens où l’espace d’administration n’est pas au même endroit que le site.

Les défauts des sites statiques

Ce n’est pas une panacée ! Les sites statiques sont pertinents quand le ratio lecture / écriture est favorable aux lectures, nous l’avons dit. Cela exclut les applications Web, les systèmes qui fournissent un contenu différent à chaque personne, les systèmes nécessitant une authentification… Ensuite, les sites statiques nécessitent un temps de compilation quand un contenu bouge. Cela crée un délai (de quelques secondes à quelques minutes) entre le moment où l’on enregistre un changement dans le CMS et le moment où le changement est en ligne. Enfin, les sites statiques ne se prêtent pas à des volumes de contenu colossaux. Quelques milliers de pages seront parfaitement gérées, quelques dizaines ou centaines de milliers poseront des problèmes de lenteur des compilations.  

En synthèse

L’association d’un générateur de site statique et d’un système de gestion de contenu décentralisé permet de gérer efficacement des sites de taille moyenne (quelques milliers de pages), avec un haut niveau de sécurité, de bonnes performances et un coût d’hébergement faible.