Le client et le serveur au café
Au café, le client passe commande, le serveur va en cuisine et revient avec le thé. Sur le web, le navigateur (client) envoie une requête, l'ordinateur distant (serveur) prépare la réponse et la renvoie.
Comprendre les rôles du client et du serveur, le dialogue requête/réponse en HTTP, et ce qui s'exécute de chaque côté dans une application web.
Sur le site d'une pharmacie de garde à Rabat, le visiteur choisit son quartier et voit la liste des pharmacies ouvertes ce soir. Une partie du travail se fait sur son téléphone (le choix, le filtrage, l'affichage), une autre sur un ordinateur distant (la liste à jour des gardes). Savoir qui fait quoi est la base de tout projet web.
Le client (le navigateur du téléphone), le serveur (le programme de l'application) et la base de données.
Ils dialoguent avec le protocole HTTP (ou HTTPS, chiffré) : le client envoie une requête, le serveur renvoie une réponse.
| Partie | Exemple |
|---|---|
| méthode | GET (lire), POST (envoyer), PUT, DELETE |
| adresse | /pharmacies?quartier=agdal |
| code de réponse | 200 OK, 404 introuvable, 500 erreur serveur |
| contenu de la réponse | HTML, CSS, JS, images, ou données JSON |
Avant, chaque clic rechargeait toute la page. Aujourd’hui, JavaScript peut demander seulement les données au serveur en arrière-plan (AJAX, partie E) et mettre à jour une partie de la page. Le même langage s’exécute aussi côté serveur avec Node.js (module 2e année).
Au café, le client passe commande, le serveur va en cuisine et revient avec le thé. Sur le web, le navigateur (client) envoie une requête, l'ordinateur distant (serveur) prépare la réponse et la renvoie.
Le navigateur ne reçoit jamais le code PHP ou la base de données : il ne reçoit que le résultat, du HTML, du CSS, du JavaScript et des données (souvent en JSON).
GET /pharmacies?quartier=agdal (requête du client)
200 OK (réponse du serveur)
[{"nom": "Pharmacie Atlas", "tel": "0537..."}] Décrivez, en 5 étapes, ce qui se passe entre le moment où le visiteur tape l'adresse du site des pharmacies et l'affichage de la liste.
1. Le navigateur trouve l'adresse IP du serveur (DNS). 2. Il envoie une requête HTTP : GET /pharmacies?quartier=agdal 3. Le serveur exécute son programme (PHP, Node.js...) qui interroge la base de données. 4. Il renvoie une réponse : HTML (ou JSON) avec le code 200. 5. Le navigateur affiche la page et exécute le JavaScript reçu.
Le JavaScript vérifie déjà que l'e-mail contient un @. Pourquoi le serveur doit-il le vérifier encore ?
Le code côté client est entre les mains du visiteur : il peut désactiver JavaScript, modifier le code avec F12 ou envoyer une requête directement. Le client vérifie pour le confort ; le serveur vérifie pour la sécurité.
Que signifient les codes HTTP 200, 404 et 500 ?
200 : OK, la réponse contient ce qui a été demandé 404 : la ressource demandée n'existe pas 500 : erreur dans le programme du serveur