Les générateurs de sites statiques (SSG) sont devenus de plus en plus populaires au cours de la dernière décennie. Cet article explique comment votre site peut bénéficier des processus de création conviviaux pour les développeurs, des déploiements plus faciles, des performances améliorées et d’une meilleure sécurité d’un site statique.

Voyons d’abord ce que nous entendons par le terme «générateur de site statique».

Qu’est-ce qu’un site statique?

Pensez au premier site Web que vous avez créé. La plupart des développeurs commencent par créer une série de pages contenues dans des fichiers HTML individuels. Tout le monde appelle des ressources telles que des images, du CSS et éventuellement une pincée de JavaScript. Vous avez peut-être démarré ces fichiers directement à partir du système de fichiers sans serveur Web. La vie était facile.

Des difficultés surviennent lorsque votre site devient plus grand et plus complexe. Considérez la navigation: elle peut être similaire dans chaque fichier, mais l’ajout d’une nouvelle page nécessite des mises à jour les unes des autres. Même les références au CSS et aux images peuvent devenir inconfortables au cours du développement des structures de dossiers. Vous avez peut-être envisagé des options telles que les inclusions côté serveur ou PHP, mais une option plus simple pourrait être un système de gestion de contenu (CMS).

Qu’est-ce qu’un système de gestion de contenu?

Un CMS fournit généralement des panneaux de contrôle administratifs. Ceux-ci permettent aux auteurs d’écrire du contenu stocké dans une base de données principale. Lorsqu’un visiteur demande une URL, le CMS:

  1. détermine quelle page est nécessaire
  2. demande le contenu correspondant de la base de données
  3. charge un modèle HTML (généralement à partir du système de fichiers)
  4. rend le contenu dans le modèle et
  5. Renvoie une page HTML formatée au navigateur du visiteur.

Cela se produit presque instantanément. Le modèle peut contenir du code pour générer des menus selon la hiérarchie de navigation. La vie est douce et plus de quatre personnes sur dix choisissent l’open source avec PHP / MySQL WordPress CMS pour gérer votre site Web.

Malheureusement, un CMS pose d’autres problèmes:

  • Vous devez adhérer au fonctionnement du CMS. Il peut être difficile d’ajouter du texte ou des composants personnalisés.
  • Le serveur fait plus de travail et les performances peuvent être affectées.
  • Il existe d’autres sources d’erreur. Une mise à niveau logicielle ou une défaillance de la base de données peut planter votre site.

Qu’est-ce qu’un générateur de site statique?

Un SSG est un compromis entre l’utilisation d’un site statique codé à la main et un CMS complet tout en conservant les avantages des deux. Essentiellement, vous générez un site Web statique basé sur des pages HTML à l’aide de concepts de type CMS tels que des modèles. Le contenu peut être extrait d’une base de données, de fichiers de démarque, d’une API ou de tout emplacement pratique.

La génération de site peut être effectuée sur votre machine de développement, sur votre serveur intermédiaire ou à l’aide d’un service de génération lorsque les modifications sont validées dans le référentiel de code. Les fichiers HTML et autres ressources qui en résultent sont ensuite hébergés sur un serveur Web en direct.

Le terme «statique» ne signifie pas «immuable». Un SSG crée une page une fois, tandis qu’un CMS la crée à chaque fois qu’il est demandé. Le résultat final est le même et les utilisateurs ne connaîtront jamais la différence.

Un concept connexe est un CMS «sans tête» ou «découplé». Ceux-ci utilisent une interface comme WordPress pour gérer la gestion de contenu, mais permettent à d’autres systèmes d’accéder aux données via un API REST, ou un API GraphQL. Par conséquent, un SSG comme Eleventy Créez un site Web statique avec WordPress Contenu de la page extrait d’un serveur interne. Les fichiers HTML résultants peuvent être téléchargés sur un serveur Web, mais l’installation de WordPress n’a jamais besoin d’être accessible publiquement depuis l’extérieur de l’entreprise.

Le terme Jamstack (JavaScript, API et balisage) est également utilisé en relation avec les sites statiques. Il fait référence à la prolifération de frameworks, de fonctions sans serveur et d’outils associés qui génèrent des fichiers statiques mais permettent de créer une interactivité plus complexe.

Les générateurs de sites statiques populaires sont: Jekyll, Onze, Gatsby, Hugo, et Forgeron de métal. Les SSG sont disponibles pour la plupart des langues (voir StaticGen pour bien d’autres). Cadres comme Next.js Rendez les pages de manière statique chaque fois que possible, mais laissez le développeur exécuter le code côté serveur si nécessaire.

Examinons les avantages d’un SSG …

1. Flexibilité

Les CMS limitent généralement vos options car elles sont liées à une base de données avec certains champs. Si vous souhaitez ajouter un widget Twitter à certaines pages, vous avez généralement besoin d’un plugin, d’un code court ou d’une fonctionnalité personnalisée.

Dans un site statique, le widget peut facilement être inséré dans un fichier directement ou en utilisant une partie / un extrait de code. Il y a peu de limites car vous n’êtes pas lié par les limites imposées par un CMS.

2. Meilleures performances

La plupart des applications CMS ont des systèmes de mise en cache intégrés ou basés sur des plug-ins pour garantir que les pages sont générées et, si possible, réutilisées. Ceci est efficace, bien que les frais généraux liés à la maintenance, à la révision et à la régénération des pages mises en cache demeurent.

Les sites statiques peuvent créer des pages pré-mises en cache qui n’ont jamais besoin d’expirer. Les fichiers peuvent également être minimisés avant le déploiement pour une utilisation la plus faible possible et être facilement livrés sur les réseaux mondiaux de diffusion de contenu (CDN). Un site statique fonctionnera toujours mieux qu’une version du CMS avec un modèle similaire.

3. Moins de dépendances côté serveur

Une installation WordPress typique nécessite:

  • un système d’exploitation adapté tel qu’Ubuntu ou CentOS
  • un serveur web comme Apache ou NGINX
  • PHP avec extensions associées et configurations de serveur Web
  • MySQL
  • l’application WordPress
  • tous les plugins nécessaires
  • le code du sujet / modèle.

Ces dépendances doivent être installées et gérées. WordPress nécessite moins d’efforts que certaines autres applications, mais il est toujours possible qu’une seule mise à jour puisse causer des ravages.

Un générateur de site statique peut avoir autant de dépendances, mais il peut s’exécuter sur le PC d’un développeur et n’est pas déployé sur un serveur de production. Un SSG génère des fichiers HTML côté client et des ressources associées qui peuvent être hébergés sur n’importe quel serveur Web. Il n’y a rien d’autre à installer, gérer ou maintenir.

4. Fiabilité améliorée

Un CMS est complexe avec de nombreuses pièces mobiles et points de défaillance. Si vous utilisez un site WordPress depuis un certain temps, vous allez presque certainement rencontrer les personnes redoutées. « Erreur de connexion à la base de données » Erreur. Des problèmes de CMS imprévus peuvent résulter d’embouteillages soudains qui surchargent le serveur, plantent la base de données ou limitent les connexions actives.

Le déploiement d’un site statique est moins intensif. Dans de nombreux cas, le serveur n’a besoin que de renvoyer des fichiers plats pour être facilement mis à l’échelle en fonction des demandes de trafic. Il est toujours possible de planter un serveur Web ou de surcharger les API, mais cela nécessitera beaucoup plus de requêtes simultanées.

5. Sécurité supérieure

Il y a plusieurs raisons pour lesquelles quelqu’un pourrait vouloir attaquer votre site Web. Le détournement de trafic, la publicité frauduleuse, les liens, l’usurpation d’authenticité et l’hébergement de logiciels malveillants permettent à un utilisateur non autorisé de gagner de l’argent et / ou des éloges.

Un CMS ouvre un certain nombre de vecteurs d’attaque. Le plus évident est l’écran de connexion: il est aussi sûr que le mot de passe utilisateur le plus faible. Notez que toute page qui exécute du code côté serveur présente également des exploits potentiels – par exemple, le déclenchement de spams via votre formulaire de contact. Il n’est peut-être pas évident que quelqu’un ait obtenu l’accès. Les pires coupables veulent rester cachés.

Un site statique peut nécessiter peu ou pas de fonctionnalités côté serveur. Certains risques subsistent, mais ils sont rarement aussi problématiques:

  • Quelqu’un peut accéder à un serveur via SSH ou FTP et déformer des pages ou télécharger des fichiers. Cependant, il est généralement facile de vérifier les modifications (éventuellement en utilisant git status), effacez tout le site et actualisez-le à nouveau.
  • Les API appelées à partir d’un site statique sont exposées dans le navigateur et peuvent être exploitées de la même manière que n’importe quel code côté serveur, par ex. B. un e-mailer de formulaires. Bonnes pratiques de sécurité, CORS, et CSP aidera.

6. Considérations relatives au contrôle des clients

Vous pouvez passer des semaines à créer un thème CMS engageant afin que le client jette son site Web à la poubelle quelques minutes après sa soumission! Utiliser un CMS n’est pas forcément facile et offre aux éditeurs de contenu des performances considérables. Vous pouvez verrouiller des droits comme l’installation du plugin, mais cela n’empêche pas quelqu’un de changer de police, d’introduire des couleurs conflictuelles, d’ajouter de mauvaises photos ou d’endommager la mise en page.

Un site statique peut être aussi limité ou aussi flexible que vous le souhaitez. Si vous utilisez Markdown ou des fichiers plats similaires, les éditeurs peuvent faire moins d’erreurs ou dégrader le style des pages. Certains manqueront les fenêtres de gestion de contenu du CMS, mais vous pouvez soit:

  1. Utilisez le CMS existant et nettoyez les données avant de générer
  2. Offrez des flux de travail plus simples comme la modification de fichiers basés sur Git dans PileModifier ou alors Hackmd.io.

7. Contrôle et test de version

Les données de la base de données sont volatiles. Avec un CMS, les utilisateurs peuvent ajouter, supprimer ou modifier du contenu sur un coup de tête. La suppression de l’intégralité du site Web ne se fait qu’en quelques clics. Vous pouvez sauvegarder des bases de données, mais même si vous le faites régulièrement, certaines données risquent d’être perdues.

Un site statique est généralement plus sécurisé. Le contenu peut être enregistré dans:

  • fichiers plats: Ils peuvent ensuite être versionnés avec Git ou des systèmes similaires. L’ancien contenu est conservé et les modifications peuvent être rapidement annulées.
  • bases de données privées: Les données ne sont nécessaires que lorsque le site est généré, il n’est donc pas nécessaire de les rendre disponibles sur un serveur public.

Les tests deviennent également plus faciles car le site peut être généré et prévisualisé n’importe où, même sur le PC d’un client.

Avec un peu plus d’effort, vous pouvez implémenter des systèmes d’approvisionnement pour créer à distance le site et mettre à jour le serveur en direct lorsque le nouveau contenu est déplacé vers un référentiel, examiné et approuvé.

Donc tout va bien dans le monde des sites statiques. Ou est-ce? Lisez mon post de suivi sur 7 raisons de ne pas utiliser un générateur de site statique.

Des démonstrations pratiques de chantiers de construction avec un générateur de localisation statique peuvent être trouvées sur:



Source link

Recent Posts