• Aucun résultat trouvé

Spécification des besoins et modèle conceptuel

1. Un niveau supérieur correspondant aux plans de tutorat — Ces derniers consistent en

4.7 Architecture client serveur du web

Selon Bernard Martin [Martin 01], le web est construit autour d’une architecture client-serveur

(Figure 4.4). Le client envoie des messages aux serveurs Web qui sont appelés démons HTTPD

(HTTP Daemon). Les serveurs Web sont des processus dont la fonction essentielle est de répondre à des requêtes émises par les clients exécutant un navigateur (browser). Ces requêtes peuvent être aussi bien la demande de transfert d’un fichier que le résultat de l’exécution d’un programme sur la machine serveur (par exemple, l’interrogation d’une base de données).

Un client web est un processus qui exécute un programme permettant à un utilisateur de soumettre des requêtes à un serveur web et d’en visualiser le résultat. Le protocole de communication ne maintient pas de session permanente entre le client et le serveur web. Le dialogue entre un client et un serveur web est schématiquement le suivant :

• établissement de la connexion et envoi de la requête ; • le serveur fournit ou non l’information demandée ; • fermeture de la connexion.

Le protocole de communication utilisé entre un client web et un serveur web est appelé HTTP. Le protocole HTTP est un protocole question-réponse et sans état, construit sur TCP/IP. Le dialogue dans le cas d’une requête pour un document HTML se déroule schématiquement de la façon suivante (Figure 4.4) :

• le client établit une connexion TCP sur le port du serveur qui accepte la connexion ; • le client émet sa requête vers le serveur qui se compose de la méthode GET, de l’URL du

document demandé, de la version du protocole utilisé (et éventuellement d’un message de type MIME contenant des modificateurs pour la requête et des informations du client) ;

• le client donne la liste des types MIME qu’il peut accepter ;

• le serveur répond avec une ligne d’état, incluant la version du protocole et un code d’état suivi d’un message de type MIME contenant des informations du serveur et le corps du document HTML demandé ;

• le serveur coupe la connexion qui matérialise ainsi la fin du document demandé.

Figure 4.4. Dialogue entre un client et un serveur selon le protocole HTTP

Le Common Gateway Interface (CGI) [Maurice 00] est le mécanisme qui permet à un client de faire exécuter un programme sur le serveur. Ces programmes sont appelés scripts de passerelles, scripts CGI ou scripts CGI-BIN et peuvent être des scripts ou des programmes exécutables. C’est le mécanisme de base pour les documents interactifs ou dynamiques, à l’opposé des pages statiques HTML. Ils peuvent par exemple permettre de traiter les données enregistrées dans un formulaire, de se connecter à une base de données pour des extractions ou des mises à jour, de lancer une autre application. Pour utiliser l’interface CGI, il faut contacter l’administrateur du serveur Web (Webmaster). L’exécution des scripts CGI doit être explicitement autorisée.

Afin d’améliorer les performances des communications entre le client et le serveur web, sont utilisées des techniques de cache pour les clients (en particulier pour les navigateurs) et de proxy, ou mandataire, pour les serveurs. Le mandataire joue le rôle d’un intermédiaire entre le client et le serveur web. Le client adresse alors sa requête au mandataire qui peut soit la satisfaire si le document est dans son cache, soit la transmettre au serveur si ce n’est pas le cas. Le mandataire agit pour un ensemble de clients, généralement connectés sur le même réseau. Les navigateurs ont une option de configuration qui permet de spécifier leur mandataire par son adresse TCP/IP [Pujole 97].

4.7.1 Serveurs

Les premiers logiciels serveurs du web furent développés par le CERN et le NCSA. Il en existe maintenant un grand nombre, dont plus de 80 %, sont des serveurs sous UNIX. On note depuis 1999 la montée en puissance du serveur Apache qui représente plus de 60 % des serveurs web en 2000. Nous rappelons que le client web peut aussi bien demander l’accès à une page HTML que l’exécution d’un programme sur le serveur en utilisant la passerelle CGI, qui fait partie intégrante du serveur ou l’exécution de scripts comme asp ou php par exemple.

Apache (« A PAtCHy server ») est un serveur web pour le domaine public, qui utilise la même syntaxe que NCSA 1.3 pour les fichiers de configuration. Le serveur Apache introduit un API pour l’ajout de nouvelles fonctions au serveur, la personnalisation des messages d’erreurs et la gestion automatique du multilangage en traitant les entêtes http.

4.7.2 Navigateurs

Les premiers navigateurs furent ceux développés au CERN. L’importance du web a réellement commencé avec la mise sur le réseau Internet du navigateur Mosaic pour un grand nombre de plates-formes. Le marché actuel des navigateurs html est largement dominé par MS Internet

Explorer et Mozilla Firefox, dont les dernières versions permettent la visualisation de fichiers XML [Michard 99] avec un support limité des feuilles de styles. Mais, citons aussi le navigateur Amaya du consortium W3C qui est un logiciel libre.

Les navigateurs offrent fonctions de navigation qui permettent aux utilisateurs de suivre les hyperliens dans les pages html et, par les commandes ou boutons du panneau de contrôle, d’aller à la page précédente (Back), à la page suivante (Forward), à une des pages mémorisées dans l’historique (Go), à une page définie par un URL explicitement affiché («file/open location ») par l’utilisateur, à une page définie par un nom de fichier local (« file/open file »).

La commande « actualiser » permet de rafraîchir la page courante en forçant son rechargement. Les bookmarks permettent à l’utilisateur de constituer une liste structurée, classée par thèmes par exemple, de sites identifiés par leur URL.

Les premiers navigateurs tels que Mosaic du NCSA et les premières versions de Netscape étaient des logiciels monolithiques pour lesquels l’adjonction de nouveaux formats et de nouveaux protocoles étaient impossibles. L’ajout de nouvelles fonctions a été rendu possible par différents mécanismes :

• Connexion de visualisateurs externes

Quand un navigateur reçoit des données d’un format qu’il ne sait pas traiter, il appelle un programme externe pour afficher les données. Des données en format RTF de Microsoft, par exemple, conduiront le navigateur à appeler le logiciel de traitement de texte Word. L’utilisateur peut décrire dans le fichier de configuration de son navigateur les différentes applications à associer aux différents types de données qu’il souhaite pouvoir traiter. Le format des types de données est décrit en utilisant un type MIME.

• Interface client à client

Cette interface, appelée CCI (Client-to-Client Interface), définit un API que les applications externes pourront utiliser pour communiquer avec le navigateur. Elle permet à une application de faire réaliser un traitement par le navigateur (ouvrir une nouvelle fenêtre, charger un document défini par un URL donné...) ou de signaler l’occurrence d’un événement.

• API propriétaires

Les exemples en sont les plug-Ins de Netscape et ActiveX d’Internet Explorer qui permettent d’étendre les fonctions offertes initialement par le navigateur.