Maison > interface Web > tutoriel CSS > Statique vs dynamique vs Jamstack: où la ligne?

Statique vs dynamique vs Jamstack: où la ligne?

尊渡假赌尊渡假赌尊渡假赌
Libérer: 2025-03-21 10:16:10
original
789 Les gens l'ont consulté

Statique vs dynamique vs Jamstack: Où est la ligne?

Les développeurs discutent fréquemment des sites Web "statiques" par rapport "dynamique", et le terme Jamstack est également couramment utilisé. Que signifient ces termes et où se trouve la ligne de division entre un site "statique" et un site Jamstack ou Dynamic? Ces questions apparemment simples ont des réponses nuancées. Plongeons ces concepts pour mieux comprendre Jamstack.

Définir les limites

Considérez la différence entre une chaise et un tabouret. La plupart diraient qu'une chaise a quatre jambes et un dos, tandis qu'un tabouret a trois jambes et pas de dos.

Mais qu'en est-il des conceptions qui brouillent les lignes?

Plus un tabouret de chaise devient plus chaise, moins la distinction est claire. Finalement, la plupart conviendraient que c'est un tabouret, pas une chaise. Cet exercice apparemment trivial met en évidence l'importance de définir les limites. Il nous aide à comprendre les limites et les zones grises. En fin de compte, même les défenseurs de chaise fidèles concéderaient un point où l'objet est clairement un tabouret.

Bien que les chaises soient intéressantes, cet article se concentre sur la technologie de livraison du site Web. Appliquons le même exercice aux sites Web statiques, dynamiques et JAMSTACK.

Un aperçu de haut niveau

Lorsque vous accédez à un site Web, plusieurs processus en coulisses se produisent:

  1. Votre navigateur effectue une recherche DNS pour traduire le nom de domaine en une adresse IP.
  2. Il demande un fichier HTML à partir de cette adresse IP.
  3. Le serveur Web renvoie le fichier demandé.
  4. Lors du rendu de la page, le navigateur peut rencontrer des références aux actifs (CSS, JavaScript, images). Il demande ensuite ces actifs.
  5. Ce cycle se répète jusqu'à ce que le navigateur dispose de tous les fichiers nécessaires. Une seule page Web fait souvent 50 demandes.

Surtout, la réponse du serveur Web à chaque demande est toujours un fichier statique, même sur un site Web dynamique. Ces fichiers peuvent être enregistrés ou partagés comme n'importe quel autre fichier.

La différence entre les sites Web statiques et dynamiques réside dans ce que fait le serveur Web . Dans un site statique, les fichiers demandés existent déjà; Le serveur les renvoie simplement. Dans un site dynamique, le logiciel génère la réponse. Cela peut impliquer des requêtes de base de données, un traitement de modèle ou l'ajout de horodatages. Cette génération se produit pour chaque demande.

Il s'agit de la distinction fondamentale entre les sites Web statiques et dynamiques.

La position de Jamstack

Les sites Web statiques ont des limites. Bien qu'ils soient excellents pour les sites d'information, ils manquent de contenu ou de comportement dynamique intrinsèquement. Jamstack comble l'écart entre statique et dynamique. Il tire parti des avantages des sites statiques tout en permettant une fonctionnalité dynamique si nécessaire.

La "pile" à Jamstack est un terme impropre. Ce n'est pas une pile mais une philosophie similaire aux 5 piliers du cadre bien architecté AWS. Cette ambiguïté a suscité beaucoup de discussions sur sa signification.

Comprendre Jamstack

Jamstack est un superset de sites statiques. Pour le comprendre, examinons ses origines.

En 2002, le blog d'Aaron Swartz "Bake, Don't Fry" a souligné les avantages des sites Web statiques, ce qui remet en question les limitations perçues. Il a souligné les avantages de la maintenance plus simple, des sauvegardes plus faciles et de l'indépendance de la plate-forme.

Tout au long de l'histoire, des frustrations similaires ont alimenté le développement des technologies liées à Jamstack:

  • MovableType a abordé les problèmes de performances et de stabilité avec le blog existant CMSS.
  • Jekyll visait à simplifier les blogs, en évitant la complexité de WordPress et Mephisto.
  • Hugo a priorisé les performances sur l'écriture de contenu dans sa conception.

Les thèmes récurrents dans les premiers outils de Jamstack comprennent une complexité réduite, des performances améliorées, un verrouillage réduit des fournisseurs et de meilleurs flux de travail des développeurs.

Au cours des deux dernières décennies, l'évolution de JavaScript et la montée des microservices ont créé une nouvelle approche: le découplage des fins frontales statiques à partir de back-end dynamiques.

En 2015, Mathias Biilmann a inventé "Jamstack" pour décrire cette approche moderne, surmontant les limites du terme "site Web statique". Cela a revitalisé les technologies statiques plus anciennes et les a poussées à de nouvelles limites. Les avantages de l'approche Jamstack ont ​​conduit à sa croissance rapide.

Treize ans avant Jamstack, Aaron Swartz a plaidé pour séparer les entrées (nécessitant un traitement dynamique) de la sortie (qui peut être prélevée). Ce découplage du front-end et du back-end, avec un pré-rendu dans la mesure du possible et une fonctionnalité dynamique superposée au besoin, est l'essence de Jamstack.

Les avantages de Jamstack sur les sites dynamiques proviennent de ses six piliers:

Sécurité

Moins de pièces mobiles réduisent la surface d'attaque.

Évolutivité

Le contenu statique évolue facilement via les CDN.

Performance

La livraison CDN améliore considérablement la vitesse de chargement des pages.

Maintenabilité

Les sites Web statiques sont intrinsèquement plus simples à maintenir.

Portabilité

Les sites statiques sont facilement transférables entre les serveurs.

Expérience du développeur

Intégration transparente avec les workflows GIT.

La comparaison par Chris de Jamstack et WordPress, et de son analyse dans "Statique ou non?", Explorez plus en détail ces points.

Utilisons ces piliers pour évaluer les cas d'utilisation de Jamstack.

Les bords de la statique et du jamstack

Ayant établi les bases, examinons les limites de chaque définition. Nous classerons les cas Edge en quatre groupes:

  • Strictement statique: adhère complètement à la définition de statique.
  • Surtout statique: bien qu'il ne soit pas parfaitement statique, la plupart le considéreraient statique.
  • JAMSTACK: Un frontal statique découplé à partir d'un back-end dynamique.
  • Dynamique: rend les pages à la demande.

De nombreux cas peuvent tomber dans plusieurs catégories; Nous utiliserons la classification la plus restrictive.

Interaction javascript

Un site statique avec un diaporama d'image alimenté par JavaScript reste statique; Toutes les interactions se produisent dans le navigateur.

Cookies

Un site statique ajoutant une bannière basée sur des cookies reste statique.

Actifs externes

Le chargement d'images ou JavaScript d'une source externe dynamique est généralement considéré comme statique, bien que strictement parlant, ce n'est pas le cas.

iframes

L'intégration du contenu via des iframes (par exemple, Google Maps) est généralement considérée comme statique, malgré la nature dynamique du contenu intégré.

Formes

Les formulaires sur les sites statiques deviennent dynamiques lorsque la soumission des données nécessite un back-end. La distinction dépend de la question de savoir si le service de soumission de formulaire est considéré comme une partie fondamentale du site Web.

Demandes ajax

Les demandes d'Ajax, en particulier aux back-end dynamiques, poussent le site au-delà du statique dans le territoire de Jamstack.

Commerce électronique

Les services permettant le commerce électronique sur les sites statiques utilisent généralement des demandes AJAX, les plaçant dans la catégorie Jamstack.

Application à page unique (SPA)

Les spas, en s'appuyant fortement sur l'Ajax, sont intrinsèquement dynamiques et Jamstack.

Appel ajax à une fonction sans serveur

Le type de back-end (sans serveur, Kubernetes, PHP) est moins important que le découplage du front-end et du back-end; C'est Jamstack.

Proxy inversé

Un proxy inversé ne fait pas intrinsèquement une dynamique de site statique, tant que le fichier reste inchangé.

Monnaie

Un CDN, agissant comme un indicateur inverse, ne modifie pas la nature statique du site.

CDN avec une longue expiration de cache

Un CDN devant un site dynamique, même avec un long cache, reste dynamique en raison de la génération initiale à la demande et de l'invalidation potentielle du cache.

WordPress avec sortie statique

L'utilisation d'outils comme WP2Static pour générer une sortie statique à partir de WordPress crée un site Web statique.

Informatique Edge

Les fonctions de bord peuvent ajouter des en-têtes (statiques) ou manipuler HTML (dynamique), brouillant les lignes. Une manipulation HTML étendue le pousse dans le domaine dynamique.

Rendu persistant distribué (DPR)

DPR, tout en améliorant les workflows de Jamstack, est essentiellement dynamique en raison de la génération de pages à la demande.

Régénération statique incrémentielle (ISR)

Semblable à DPR, la génération de pages à la demande d'ISR la classe comme dynamique.

CMS de fichier plat

CMSS de fichiers plats, tout en éliminant les bases de données, rendent toujours dynamiquement les réponses.

Conclusion

L'examen de ces cas de bord clarifie les limites de la statique et du jamstack. L'objectif n'est pas l'adhésion dogmatique mais la compréhension des compromis. Un site Web pourrait être principalement JAMSTACK avec des éléments dynamiques; C'est parfaitement acceptable. Plus statique est proche, meilleure est la performance, la sécurité et l'évolutivité. Cette discussion est en cours et la compréhension des compromis est la clé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal