Il y a quelques années, le web était dit « statique » : le concepteur de site web écrivait son code HTML et ce code était simplement envoyé par le serveur au client. Les personnes qui consultaient le site avaient toutes droit à la même page, le web était purement « consultatif ».

Les choses ont ensuite évolué : les serveurs sont aujourd'hui capables de générer eux même du code HTML. Les résultats qui s'afficheront à l'écran dépendront donc des demandes effectuées par l'utilisateur du site : le web est devenu dynamique.

Différents langages de programmation peuvent être utilisés « côté serveur » afin de permettre au serveur de générer lui-même le code HTML à envoyer. Le plus utilisé encore aujourd'hui se nomme PHP. Nous n'utiliserons pas PHP, je n'insisterai donc pas sur ce sujet. D'autres langages sont utilisables côté serveur (pour permettre la génération dynamique de code HTML), voici un liste non-exhaustive : Java, Python, ASP....

J'ai volontairement omis un langage : le JavaScript. L'utilisation du JavaScript côté serveur est relativement récente. Pour ne pas partir avec de fausses idées en tête, vous devez bien comprendre que nous allons parler de JavaScript qui s’exécute sur le serveur. Quand vous associez une page HTML avec un script JavaScript (à l'aide de la balise <script>), ce script est bien stocké sur le serveur, mais il est envoyé au client (par l'intermédiaire d'une requête HTTP) afin d'être exécuté par le navigateur. Attention donc à ne pas confondre le JavaScript exécuté côté client (par le navigateur) et le JavaScript exécuté côté serveur.

Et nodeJS fût....

Comme je viens de vous le rappeler, jusqu'à une époque récente, le JavaScript était uniquement destiné à être exécuté sur le client. Pour être plus précis, tous les navigateurs web (Firefox, Chrome, Opéra...) sont « équipés » d'un moteur JavaScript. Ce moteur JavaScript a pour but d'interpréter le code et d'afficher le résultat dans le navigateur.

Le moteur du navigateur made in Google, Chrome, se nomme V8.

Ryan Dahl a décidé, en 2009, d'utiliser le moteur V8 afin de permettre l'exécution de JavaScript côté serveur (c'est-à-dire sans utiliser de navigateur web) : nodeJS était né !

Je précise que nodeJS n'est ni le premier, ni le seul à proposer du JavaScript côté serveur, mais force et de constater qu'aujourd'hui, c'est lui qui à le vent en poupe.

Précisons une chose : nodeJS n'est pas un serveur web (comme Apache par exemple), c'est juste une plateforme permettant d’exécuter du JavaScript. Avec nodeJS nous allons devoir programmer notre serveur web !