Client/serveur
Client/serveur
Client/serveur
INTRODUCTION
Les pages dynamiques et l’accès aux bases de données sont des technologies indispensables
au développement d’un site web. Les sites web utilisant les pages dynamiques et les bases de
données règnent aujourd’hui en maitre sur internet. Il n’est plus imaginable de développer un
site sans faire appel à ces technologies et aux possibilités et de personnalisation qu’elles
permettent. Ce chapitre présente et explique la notion de client/serveur et le concept du Web,
ainsi que les pages dynamiques.
II.1. Définition
Un environnement client/serveur désigne un mode de communication àtravers un réseau
informatique entre plusieurs logiciels. Un logiciel client et un logiciel serveur sont reliés par un
réseau informatique. Le logiciel client peut envoyer une requête au logiciel serveur.
Le navigateur émet une requête http vers un serveur web afin d’obtenir la page web désirée.
Le serveur envoie les données demandées par le client ; si celui –ci est autoriséàaccéder au
document. Le navigateur interprète les instructions de mise en page contenus dans les données
envoyées par le serveur.
II.3. Fonctionnement d’un système client/serveur
Un system client /serveur fonctionne selon le schéma suivant :
Le client émet une requête vers le serveur grâce àson adresse IP et le port ; qui désigne un
service particulier du serveur. Le serveur reçoit la demande et répond à l’aide de l’adresse de
la machine client et son port.
✓ Des ressources centralisées : Toutes les données sont centralisées sur un seul serveur, ce
qui simplifie les contrôles de sécurité, l'administration, la mise à jour des données et des
logiciels.
Les technologies supportant l'architecture client-serveur sont plus matures que les autres.
La complexitédu traitement et la puissance de calculs sont àla charge d’où des serveurs, les
utilisateurs utilisant simplement un client léger sur un ordinateur terminal qui peut être
simplifiéau maximum.
✓ Recherche d'information : les serveurs étant centralisés, cette architecture est
particulièrement adaptée et véloce pour retrouver et comparer de vaste quantitéd'informations
(moteur de recherche sur le Web), ce qui semble être rédhibitoire pour le P2P beaucoup plus
lent, àl'image de Free net.
Si le serveur n'est plus disponible, plus aucun des clients ne fonctionne (le réseau pair-à-pair
continue àfonctionner, même si plusieurs participants quittent le réseau). Les coûts de mise en
place et de maintenance peuvent être élevés. En aucun cas les clients ne peuvent communiquer
entre eux, entrainant une asymétrie de l'information au profit des serveurs.
Le World Wide est Web est rapidement devenu le service le plus utilisésur l'Internet. Il a
conçu le Hypertext Markup Language (HTML) à partir d'un autre format utilisé pour les
documents appeléle SGML(Standard Generalized Markup Language). Le WWW fonctionne en
utilisant le concept d'hypertexte. À l'intérieur d'une page, il y a des mots clés ou des images qui
ont des liens qui, lorsque vous cliquez dessus, vous amènent àune autre page Web.
III.2. Le WEB
Dans les années 90, un nouveau service de l'Internet est apparu : le World Wide Web, la toile
d'araignée mondiale, encore désignée par l'acronyme WWW ou le diminutif Web. C'est ce
service qui assure un certain succès àl'Internet. L'idée est de lire des hyperdocuments àl'aide
d'un navigateur. Un hyperdocument est un document électronique contenant des images, du
son, du texte, parfois des petits morceaux de programme, mais surtout des liens vers d'autres
hyperdocuments : des liens hypertextes. Ces liens apparaissent dans un style qui les
distinguent, et une simple action de la souris sur un lien suffit àouvrir le document lié. Les
documents peuvent se trouver sur n'importe quelle machine (serveur) de l'Internet à des
endroits parfois très éloignés et c'est ce qui donne l'impression àl'utilisateur de naviguer sur le
réseau. Le navigateur est l'outil qui permet de lire les hyper documents. On l'appelle aussi
browser et les deux plus connus aujourd'hui sont MicroSoft Internet Explorer (MSIE) et
Netscape. Au début conçu pour ne lire que les hyper documents, le navigateur intègre
aujourd'hui tous les services de l'Internet (e-mail, ftp,...) Le navigateur désigne par une adresse
URL (Uniform Resource Locator), les adresses complètes de l'Internet. C'est une adresse qui
contient àla fois le nom d'une machine mais aussi le nom du service demandé, le nom d'un
document,...
Un autre standard incontournable de l'Internet est HTML (HyperText Markup Language).
C'est le langage qui permet d'écrire des hyperdocuments de façon descriptive à l'aide de
marqueurs.
III.3.1. URL
Une URL (Uniform Resource Locator) est une simple ligne de texte qui permet de retrouver
une ressource (texte, image, musique, vidéo, programme...) sur internet. Il s'agit d'une chaîne
de caractères ASCII imprimables qui se décompose en cinq parties :
✓ Le nom du protocole : c'est-à-dire en quelque sorte le langage utilisépour communiquer
sur le réseau. Le protocole le plus largement utilisé est le protocole HTTP (HyperText
Transfer Protocol), le protocole permettant d'échanger des pages Web au format HTML. De
nombreux autres protocoles sont toutefois utilisables (FTP, News, Mailto, Gopher, ...)
✓ Identifiant et mot de passe : permet de spécifier les paramètres d'accès à un serveur
sécurisé. Cette option est déconseillée car le mot de passe est visible dans l'URL
✓ Le nom du serveur : Il s'agit d'un nom de domaine de l'ordinateur hébergeant la ressource
demandée. Notez qu'il est possible d'utiliser l'adresse IP du serveur, ce qui rend par contre
l'URL moins lisible.
✓ Le numéro de port : il s'agit d'un numéro associéàun service permettant au serveur de
savoir quel type de ressource est demandée. Le port associépar défaut au protocole est le port
numéro 80. Ainsi, lorsque le service Web du serveur est associé au numéro de port 80, le
numéro de port est facultatif
✓ Le chemin d'accès à la ressource : Cette dernière partie permet au serveur de connaître
l'emplacement auquel la ressource est située, c'est-à-dire de manière générale l'emplacement
(répertoire) et le nom du fichier demandéUne URL a donc la structure suivante :
Figure 1.4 Déroulement d’une requête complète
• 1) Le client émet une requête (i.e. appelle une URL) pour demander une ressource au
serveur. Exemple : http://leserveur.com/welcome. Il ne sait pas ici si la réponse qui
va lui parvenir est statique (page HTML simple) ou dynamique (générée par une
application web). Dans notre cas, il s'agit d'une application répondant àl'adresse
welcome sur le serveur leserveur.com.
• 2) Côtéserveur, c'est le serveur web (exemple : Apache) qui traite les requêtes HTTP
entrantes. Il traite donc toutes les requêtes, qu'elles demandent une ressource statique
ou dynamique. Seulement, un serveur HTTP ne sait répondre qu'aux requêtes visant
des ressources statiques. Il ne peut que renvoyer des pages HTML, des images,...
existantes.
• 3) Ainsi, si le serveur HTTP s'aperçoit que la requête reçue est destinée au serveur
d'applications, il la lui transmet. Les deux serveurs sont reliés par un canal, nommé
connecteur.
• 4) Le serveur d'applications (exemple : Tomcat !) reçoit la requête àson tour. Il est,
lui, en mesure de la traiter. Il exécute donc le morceau d'application (la servlet) auquel
est destinée la requête, en fonction de l'URL. Cette opération est effectuée àpartir de
la configuration du serveur. La servlet est donc invoquée, et le serveur lui fournit
notamment deux objets Java (Tomcat est un serveur d'applications Java) exploitables :
un représentant la requête, l'autre représentant la réponse. La servlet peut maintenant
travailler, et générer la réponse àla demande. Cela peut passer par la consultation de
sources de données, comme des bases de données (4'' sur le schéma). Ou bien par
l'interrogation d'autres serveurs ou systèmes (4' sur le schéma), l'environnement Java
web permettant de se connecter àde nombreux systèmes.
• 5) Une fois sa réponse générée, le serveur d'applications la renvoie, par le connecteur,
au serveur web. Celui-ci la récupère comme s'il était lui-même alléchercher une
ressource statique. Il a simplement déléguéla récupération de la réponse, et celle-ci a
étégénérée, mais ce n'est plus le problème.
• 6) La réponse est dorénavant du simple code HTML, compréhensible par un
navigateur. Le serveur HTTP peut donc retourner la réponse au client.
✓ Page statique : affiche la page accueil.htm, stockée telle quelle sur le serveur,
✓ Page dynamique : affiche la page accueil.php en demandant au serveur d'afficher le
contenu de cette page en français.
Alors que les pages statiques font appel au html, langage de description de données, les pages
dynamiques sont mises en œuvre grâce à un langage de programmation. Grâce à lui, on
pourra disposer d'instructions conditionnelles, des boucles et des fonctions de traitement
complexes. Le langage de programmation variera en fonction de la technologie retenue (PHP,
ASP, Java, etc.).
III.3.4. Hypertexte
Le système hypertext est un système contenant des nœuds liés entre eux par des hypertextes est
donc un document qui contient des hyperliens et des nœuds. Un nœud est « une unité
minimale d’information », notion assez floue qui signifie simplement que l’information d’un
nœud sera toujours présentée entière
Lorsque les nœuds ne sont pas uniquement textuels ; mais aussi audiovisuels ; on peut parler
de système et de document hypermedias.
III.4.4. PHP
PHP est un langage de programmation informatique essentiellement utilisépour produire àla
volée des pages web dynamiques, PHP s’est imposé comme le langage de référence sur le web
en raison de sa simplicité, de sa gratuitéet de son origine de logiciel libre. Il très puissant, rapide
et principalement exécutépar le compilateur PHP. Un script PHP est multiplateforme, très bon
support des bases de données (Oracle, Microsoft, MySQL).
III.4.5. MYSQL
MySQL (My Structured Query Language) est un Système de Gestion des Bases des données
(SGBD) Open Source très rapide, robuste et multiutilisateur. Le serveur MySQL supporte le
langage de requêtes SQL, langage standard de choix des SGBD modernes. Il est facilement
accessible en réseaux et supporte des connexions sécurisées grâce au protocole SSL. La
portabilité du serveur MySQL lui permet de s'exécuter sur toutes les plateformes et d'être
intégréàplusieurs serveurs web.
Les éléments
HTML est un markup language (langage de marquage ?). Il permet d'enrichir un texte avec des
informations structurelles, sémantiques et de présentation. Le principe de HTML, commun àce
type de langages (SGML pour Standart Generalized Mark-up Language), consiste àutiliser des
éléments délimités par des balises.
Les éléments permettent d'associer à différents blocs (texte, images...) les informations
structurelles, sémantiques et de présentation désirée. Les principaux éléments HTML
permettent de définir des liens hypertextes, des titres, des paragraphes, des listes, des tableaux,
des images, et cætera...
Les balises
Les éléments sont délimités par des balises. On place une balise de début avant le contenu de
l'élément et une balise de fin après. Mais dans certains cas, la balise de fin n'est pas nécessaire.
Une balise est formée en encadrant le nom de l'élément avec les symboles < et > (soit <element>
oùelement est le nom de l'élément). Pour une balise de fin on ajoute le caractère / avant le nom
de l'élément (soit </element>. Dans l'exemple suivant on définit un titre ou en-tête principal
(élément H1). Seul le texte baliséconstitue l'élément H1. Les navigateurs courants utilisent pour
ce genre d'éléments une typographie plus forte.
<H1>L'estuaire de Seine</H1>
Lieu magique, rencontre du fleuve et de la mer, un environnement unique,
l'estuaire de Seine est aussi un lieu de communication important...
Enfin, un certain nombre de balises n'ont pas besoin de marqueur de fin. La fin de l'élément
sera déterminée automatiquement par le logiciel de navigation. C'est le cas en particulier de
l'élément P qui indique un nouveau paragraphe. Le code précédent serait d'ailleurs plus correct
en ajoutant une balise <P> après le titre :
<H1>L'estuaire de Seine</H1>
<P>Lieu magique, rencontre du fleuve et de la mer, un environnement unique,
l'estuaire de Seine est aussi un lieu de communication important...
Les attributs
Les attributs permettent d'apporter certaines précisions àdes éléments. Il peut s'agir par
exemple d'un nom de fichier (pour placer une image) ou d'une référence àune adresse HTML
(lorsqu'on crée un lien). On place les attributs dans la balise de début de l'élément concerné.
La syntaxe est simple : "nom de l'attribut"="valeur de l'attribut".
Dans l'exemple suivant, on place une image (élément IMG). Deux attributs permettent l'un de
déterminer le nom du fichier contenant l'image et l'autre de placer une brève description de
cette image.
Remarque 2 : l'attribut alt de l'élément IMG est indispensable pour construire des pages
accessibles. Il a d'ailleurs étérendu obligatoire par la norme HTML 4.0.
Jeu de caractères
Pour différentes raisons le jeu de caractère utilisépour stocker les documents HTML est le
code ASCII standard sur 7 bits. Ce code permet de décrire le jeu de 128 caractères de base
comprenant les lettres majuscules et minuscules, les chiffres et les signes de ponctuation. Les
caractères accentués sont codés dans des jeux de caractères étendus à8 bits.
La principale raison qui aujourd'hui oblige àcontinuer d'utiliser le code ASCII 7 bit et non un
code étendu est que tous les ordinateurs n'utilisent pas les mêmes codes étendus (caractères
128 à255). Les machines sous Windows et la plupart des machines Unix utilisent maintenant
le code dit ISO-LATIN1, mais les PC sous DOS, les MACintosh et différents autres types
d'ordinateurs utilisent d'autres codes.
Pour écrire des documents susceptibles d'être consultés sans problèmes quelque soit le type de
système du client, il est nécessaire de coder les caractères accentués en utilisant un codage un
peu particulier. On indique entre des caractères & et ; la lettre et l'accent. Ainsi le caractère é
doit-il être représentépar la chaine é.
Mais les caractères accentués ne sont pas les seuls àêtre codés de cette façon. Le caractère &
lui-même doit être codéde façon particulière sinon comment différencier les cas oùon
l'utilise pour lui-même de ceux oùil débute un caractère spécial ? De même les < et >
pourraient être confondus avec le début oùla fin d'une balise.
<HTML>
<HEAD>
en-tête du document
</HEAD>
<BODY>
corps du document
</BODY>
</HTML>
Voir également les attributs de la balise BODY pour la définition des couleurs du document et
d'une éventuelle image de fond.
Pour être plus rigoureux, la première ligne d'un document HTML doit mentionner un
DOCTYPE, c'est-à-dire le langage HTML que l'on va utiliser dans la suite. Les variations
possibles sont :
• respecter ou pas les contraintes d'un langage XML : si oui, il s'agit de XHTML, sinon de
HTML 4.01 ;
• se restreindre aux éléments purement sémantiques ou s'autoriser les éléments de mise
en forme : dans le premier cas on fait du Strict, sinon du Transitional.
Une autre précision important est l'encodage utilisépour les caractères : il pourrait s'agir de
latin1, d'utf8, etc.
Finalement, si l'on fait le choix d'un HTML avec contraintes XML, éléments de mise en
forme et codage des caractères en UTF8, le squelette du document devient :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
corps du document
</body>
</html>