web-dev-qa-db-fra.com

Devriez-vous toujours programmer côté serveur pour un site Web?

Je suis sur le point de commencer à créer un site Web de projet musical pour un ami. Cela devrait être assez simple pour l'instant: pas de contenu dynamique (dates de tournée, etc.), et rien de plus que quelques exemples de chansons intégrées ou des liens SoundCloud. Je ne m'attends pas à utiliser autre chose que Vanilla JavaScript et Bootstrap ou Foundation pour une grille réactive.

Mais est-ce suffisant? Puis-je simplement télécharger des fichiers HTML, CSS et JS sur un hôte et en finir avec cela, ou dois-je prendre le temps de programmer un serveur principal en Node ou PHP?

38
Deegriz

Si vous ne savez pas si vous avez besoin d'un code côté serveur, vous n'en avez probablement pas *

* Avertissement: Le code côté serveur est essentiel pour la sécurité, lorsque vous souhaitez contrôler en interne l'accès au contenu, aux données ou aux fonctionnalités. (Il ne doit pas nécessairement être votre serveur , voir le dernier paragraphe.)

Demandez-vous quel problème l'utilisation des technologies côté serveur résoudrait. Si vous n’y pensez pas (et dans votre cas, je ne le peux pas non plus), vous n’en avez pas besoin.

Sachez que beaucoup plus que vous ne le pensez est possible en utilisant uniquement du code côté client. Les frameworks JavaScript comme AngularJS ou ReactJS peuvent vous permettre d'intégrer du contenu dynamique tiers via des API utilisant Ajax. (Cela inclut la connexion à une API qui pourrait gérer sa propre sécurité.)

86
Tim Grant

Lisez à propos des générateurs de sites statiques. Celles-ci vous permettent de créer un site de manière programmatique (en utilisant des modèles, des données, etc.), et non en créant du HTML à la main. Le résultat est un ensemble de HTML et CSS statiques qui ne nécessitent aucun backend.

https://www.staticgen.com/ répertorie et classe un certain nombre de ces générateurs open source; des offres de sources fermées existent probablement aussi.

56
9000

Vous pouvez et devez utiliser uniquement un site statique si cela suffit, ou utiliser un générateur de site statique . Pourquoi? Maintenabilité . Le code a des bogues. Toutes les quelques semaines, il y a un autre WordPress trou de sécurité trouvé. Si vous utilisez un CMS commun, vous devrez le corriger constamment. Sinon, le site Web de vos amis contiendra bientôt de la publicité pour les drogues illicites, la propagande ISIS, malware installé sur les ordinateurs des visiteurs ou pire. Même si vous le corrigez régulièrement, il se peut que vous soyez trop tard pour vérifier constamment les hacks. Il existe des moyens de sécuriser ce CMS. Installez des "plugins de sécurité", configurez un pare-feu d'application web comme mod_security etc. Tout simplement plus de travail. Ils doivent également être mis à jour. Parfois, vos règles mod_security cassent un plugin pour WordPress, vous devez analyser cela et le réparer. Plus de travail.

Vous pourriez penser que personne ne voudra pirater ce site. Mais pour les failles de sécurité communes aux systèmes CMS courants, il existe bientôt des robots automatiques qui explorent/recherchent le Web et piratent TOUS les sites utilisant ce CMS. Ils veulent simplement diffuser leurs liens/programmes malveillants/propagande.

Avec un site statique (créé manuellement ou avec un générateur), vous n'avez pas ce problème.

Si vous implémentez votre propre backend, il y aura également des failles de sécurité (personne n'est parfait) mais très probablement personne ne les exploitera pour ce petit site Web. Mais que voulez-vous mettre en œuvre? Si vous souhaitez créer un éditeur où votre ami peut modifier lui-même les dates de la tournée, pensez au temps que cela vous prendra jusqu'à ce qu'il soit assez facile à utiliser sans votre aide. Combien de fois pouvez-vous simplement changer rapidement les dates pour lui avec ce budget temps?

À mon avis, beaucoup trop de gens utilisent aujourd'hui des systèmes CMS pour chaque site, car le HTML statique est "ancien". Si vous n'avez besoin de rien qui n'est pas possible avec HTML5, utilisez le code côté serveur. Mais si vous n'en avez pas besoin, vous gagnez beaucoup de temps sans cela.

Vous n'avez besoin de faire de la programmation backend que lorsque vous en avez besoin.

Cependant, même les fonctionnalités de base telles que l'envoi de formulaires par e-mail nécessitent généralement une programmation de base. Si c'est juste un site d'affichage, alors oui, ça va.

3
deek

Pas nécessairement, mais vous rencontrerez probablement des problèmes si vous créez l'intégralité du site en HTML clair.

De nombreux sites ont les mêmes éléments de menu, d'en-tête et de pied de page sur plusieurs pages. Si vous copiez et collez simplement ceux-ci d'une page à une autre, cela peut devenir fastidieux et source d'erreurs à mesure que le site s'agrandit et que vous devez continuer à apporter des modifications dans ces domaines.

Dans les jours précédant la programmation côté serveur, il était si courant de résoudre ce problème en utilisant frames pour intégrer ces zones dans chaque page. Cela est tombé en disgrâce il y a plusieurs années, donc je ne recommande pas de le faire maintenant. Vous pouvez écrire du code côté serveur simple à la place pour afficher ces éléments communs sur chaque page.

Je serais d'accord avec les autres ici qui ont recommandé d'utiliser un CMS standard.

2
bdsl

Je pense que si vous ne savez pas que vous devriez utiliser côté serveur ou non, alors vous n'en avez probablement pas besoin. il y a beaucoup de choses que vous pouvez faire avec le côté client pour un site Web.

En utilisant js, bootstrap vous pouvez créer un site Web décent

0
Ishan Shah