Créé le 28 avril 2004
Modifié le
Introduction au Web > Architectures

Les architectures Web

Architecture à 2 niveaux

L'architecture de base pour un site Web est une architecture à 2 niveaux entre un client (le navigateur Web: Internet Explorer, Ntescape, Opera ...) et un serveur (Apache, Domino, Information Server, Enterprise Server ...).

L'architecture s'appuie sur un poste central, qui envoie les données aux machines clientes:

  1. L'utilisateur émet une requête HTTP vers le serveur sur lequel est stockée la page HTML.
  2. Le serveur accède alors à ce fichier et le retourne au navigateur.
  3. Le navigateur interprête les balises HTML et affiche la page en résultat.

La connexion des applications client-serveur ouvre donc les systèmes d'information vers l'extérieur.

Les technologies qui permettent d'obtenir un contenu dynamique depuis le poste client s'inscrivent également dans une architecture à 2 niveaux. Les programmes qui accèdent au serveur sont appelés des programmes clients. Dans le cas des scripts Javascript ou des applets Java, les fonctionnalités supplémentaires apportées au niveau de la page ne dépendent pas de traitement opérés depuis le serveur. C'est le navigateur qui interprête les scripts et affiche les données correspondantes. Il est donc nécessaire que votre navigateur accepte ces scripts. Il faut que Javascript soit activé (ce qui est le plus souvent le cas, mais pas toujours pour des raisons de sécurité) et, pour les applets, vous devez disposer de la Java Virtual Machine qui va compiler le code Java pour qu'il soit assimilable par le navigateur.
Il existe de nombreux programmes légers et extensibles, également appelés plugins, qui, intégrés au navigateur, permettent d'enrichir ses fonctionnalités.

Architecture à 3 niveaux

Le développement de sites interactifs, nécessitant de conserver des données sur les visiteurs, d'accéder à de grandes masses d'information ou de modifier régulièrement le contenu, repose aujourd'hui sur une architecture à 3 niveaux (ou architecture trois-tiers) entre serveur de données, serveur d'applications et client web.
Ce type d'architecture, plus complexe que le client-serveur, permet l'accès aux bases de données stockées elles-mêmes sur un serveur. Plus généralement, elle offre la possibilité d'exécuter des programmes du côté serveur. Les résultats sont prétraités avant leur envoi final, en format HTML, vers le navigateur.

Les 3 niveaux s'articulent dès lors de la manière suivante:

  • le premier niveau s'occupe de l'interface avec l'utilisateur depuis le navigateur.
  • le second héberge le serveur web qui est complété par le serveur d'application qui exécutent les traitements demandés lors de l'appel HTTP d'une page. Le serveur HTTP, aussi appelé middleware, est donc à la fois serveur et client. Serveur vis-à-vis du navigateur et client par rapport au serveur d'applications à qui il envoie une requête et dont il attend en retour le résultat. Une fois reçus, le serveur HTTP les compose dans un format assimilable par le navigateur client.
  • le troisième niveau assure la gestion des données au sein d'un SGBD (Système de Gestion de Bases de Données) et répond aux requêtes du serveur HTTP.

Entre le serveur de données et le serveur d'applications, il existe toute une panoplie de technologies, disponibles suivant les serveurs. Les serveurs dynamiques sont capables de publier des informations adaptées aux besoins des utilisateurs en disposant de technologies comme la passerelle CGI, les API ou encore les servlets Java qui vont permettre d'ajouter des extensions aux serveurs (contenant les paramètres des requêtes) et de produire ainsi du contenu dynamique.
Les technologies serveurs les plus récentes offrent aujourd'hui la possibilité de composer des pages actives sur le serveur. Le principal bénéfice de technologies tels PHP, les ASP ou les JSP est de fournir au serveur HTTP des données issues de programmes d'application mais directement intégrés au code HTML suite à un traitement préalable (le plus souvent par un interpréteur ou moteur particulier). Les pages actives côté serveur s'inscrivent dans une architecture trois-tiers, mais peuvent être perçues comme une couche supplémentaire de fonctionnalités sur le serveur.