Généralités

Avant de parler des CMS en eux-mêmes, je vais vous expliquer quelques bases sur le fonctionnement des sites web en général.

Fonctionnement

Ce que l’on appelle “client“, c’est l’ordinateur (ou téléphone/tablette) qui vous sert à vous connecter à Internet. Le client effectue une requête (lorsque vous cliquez sur un lien ou quand vous tapez une adresse directement dans votre navigateur) pour obtenir une page web.

La base de données est l’espace où sont stockées les informations nécessaires à afficher la page web demandée (textes, images …).

Enfin, le serveur est la machine qui permet de faire le lien entre les deux.

Côté client

Comme vous le savez peut-être, une page web est généralement construite avec du HTML/CSS/JavaScript :

  • HTML est une norme qui permet de structurer un document (titres, parties, header, footer …).
    C’est le seul élément indispensable à la création d’une page web.
  • CSS est un formalisme qui permet de mettre en forme un document (couleur, police, taille de caractère …).
  • JavaScript est un langage de programmation permettant d’animer le contenu d’une page web (réagir à une action de l’utilisateur, afficher un élément évolutif, etc.).

Lorsque vous demandez à afficher une page web, vous demandez au serveur de vous envoyer un ou plusieurs fichier(s) HTML, JavaScript et CSS. Une fois reçus, ces fichiers seront utilisés par votre navigateur (Chrome, Firefox, Opéra …) pour vous afficher la page demandée.

Côté serveur

À la différence du HTML qui est standard côté client, il existe de très nombreux langages pour programmer un serveur web (PHP, JSP, ASP, Java …).

En fait, presque tous les langages permettent de faire un serveur web ! Certains, comme PHP, sont dédiés à la création de serveur web.

La plupart des CMS sont écrits en PHP.

Quel que soit le langage utilisé, l’objectif du serveur reste le même lors d’une requête d’affichage de page.

D’abord, il va interpréter le message envoyé par le client (sous la forme d’un lien, d’une adresse, d’un formulaire …).

Il va ensuite récupérer les informations sur la base de données.

Cela va lui permettre de construire la page en assemblant le HTML, le CSS et le JavaScript.

Enfin, il pourra envoyer la page au client.

Côté base de données

Sans rentrer trop dans le détail, la plupart des bases de données utilisées dans le Web aujourd’hui sont des bases de données relationnelles utilisant le langage SQL (Structured Query Language, soit langage de requête structurée).

Comme son nom l’indique, SQL est un langage dédié au stockage et à la récupération d’informations sur (ou à partir) d’une base de données.

Il existe diverses variantes de ce langage en fonction de la base de données utilisée (MySQL, PostgreSQL, Oracle …) mais elles sont relativement minimes et nous ne les aborderons pas dans ce cours.

Pour faire simple, la base de données a deux utilités :

  • sauvegarder des informations envoyées par le serveur ;
  • envoyer au serveur des informations préalablement enregistrées.

Site dynamique ou statique ?

Tous les sites ont-ils besoin d’une base de données et d’un serveur ?

Non. Il est possible de se passer de base de données et/ou de serveur. Seul le HTML est indispensable à la création d’une page web.

Sans serveur ni base de données, la page sera statique : c’est-à-dire qu’elle sera toujours la même quel que soit le moment où vous la consultez.

Avec une base de données et un serveur, il est possible de créer une page web dynamique : une page web qui peut évoluer avec les utilisateurs (comme une page Facebook) ou au cours du temps (comme un blog par exemple).

Front-office et back-office ?

Dernier point de connaissance à aborder : la différence entre ce que l’on appelle le front-office et le back-office (“boutique” et “arrière-boutique” en français).

Comme nous venons de le voir, le rôle du serveur, lorsque l’on demande à afficher une page, est d’aller chercher des informations sur la base de données.

D’où la question légitime : d’où viennent ces informations qui sont présentes dans la base de données ?

Si vous avez lu le titre de cette section, vous devez vous douter de la réponse : du back-office !

On appelle back-office la partie du site web qui permet de modifier/ajouter/retirer des informations sur notre site. La partie d’un site web où sont affichées ces informations, c’est le front-office.

La différence entre front-office et back-office n’est pas une différence technique, c’est une différence d’usage. Le back-office est la partie du site (généralement privée et sécurisée par un mot de passe) qui permet à l’administrateur du site d’administrer son site web : ajouter des pages, modifier du contenu, gérer les utilisateurs, etc. Le front-office, lui, est à destination des usagers du site : il est visible par les internautes.