Parfois, lorsque je crée des outils Web de base, je vais commencer par un backend nodeJS, en créant généralement un serveur API avec ExpressJS. Lorsque certaines routes sont atteintes, le serveur répond en rendant le code HTML d'EJS en utilisant l'état en direct de la connexion, puis l'envoie au navigateur. Cette application affichera généralement un répertoire pour les ressources statiques publiques et les desservira également. J'imagine que cela crée beaucoup de frais généraux pour cette forme d'application web, mais je ne suis pas sûr.Différence entre la WebApp qui se connecte à l'API et le rendu dorsal
D'autres fois, je vais commencer par une API (qui pourrait être la même structure de NodeJS exacte, sans rendu HTML, juste la gestion de l'état et l'exposition API) et je vais construire une page Web Angular2 ou autre HTML qui sera se connecter à l'API, charger des informations sur le chargement et remplir les données de la page.
Ces pages ont tendance à compter sur un grand nombre d'appels AJAX et de jQuery afin de rafraîchir les composants angulaires après le déclenchement d'un certain nombre de rappels asynchrones. Dans cette structure, je vais utiliser un serveur web comme Apache pour servir tous les fichiers et définir les routes, et le JS dans les pages web fera le reste.
Quelles sont les forces et les faiblesses des deux? Et pourquoi devrais-je utiliser une stratégie par rapport à l'autre? Sont-ils à la fois viables et dépendants de l'échelle et de l'utilisation? J'imagine que la mise à l'échelle horizontale avec des équilibreurs de charge pourrait fonctionner dans les deux situations.
"Dernière remarque - Vous devez toujours faire des validations cruciales sur le serveur, ne vous fiez jamais aux données du client." est incroyablement utile et mérite d'être souligné. Votre réponse est complète. J'attendrai toute contribution supplémentaire avant d'accepter votre réponse. – Neurax