Numérique et sciences informatiques (spécialité) · Première
Interaction client-serveur et protocole HTTP : cours de 1re NSI
Publié le 7 novembre 2026 · Mis à jour le 7 novembre 2026 · Signaler une erreur
L'essentiel
- Le Web repose sur un client (le navigateur) qui envoie une requête et sur un serveur qui renvoie une réponse : c'est le modèle client-serveur.12
- HTTP est le protocole standard du Web ; il est construit sur TCP, et le serveur écoute par défaut sur le port 80.2
- Le client trouve la machine grâce au DNS et s'adresse au bon service grâce au port ; le serveur peut calculer la page à partir des paramètres placés dans l'URL.21
- HTTP est un protocole sans état : les cookies permettent à une application serveur de reconnaître une session.2
- Un serveur concurrent sert plusieurs clients en même temps, et AJAX déplace une partie du travail du serveur vers le client.23
Pourquoi comprendre l'échange entre un navigateur et un serveur
Quand tu ouvres une page dans ton navigateur, tout semble immédiat : tu tapes une adresse, la page apparaît. Pourtant, entre ces deux instants, deux machines ont dialogué, parfois situées à des milliers de kilomètres l'une de l'autre. Ce dialogue suit des règles très précises, sans quoi un ordinateur sous Windows, un téléphone et un serveur sous Linux ne pourraient pas se comprendre.
Dans ce cours, tu vas découvrir ces règles. Tu as déjà vu comment écrire une page avec HTML et CSS, et comment la rendre vivante avec des événements et du JavaScript. Il manque une pièce : comment la page arrive-t-elle jusqu'à ton écran, et comment ce que tu fais dans la page repart-il vers un serveur ? C'est exactement le sujet de ce chapitre.
Le plan est le suivant. D'abord, les deux rôles : le client et le serveur. Ensuite, le protocole HTTP, qui fixe la façon de se parler. Puis la manière dont le client retrouve le bon serveur (adresse, DNS, port). Nous suivrons ensuite un échange complet, avant d'étudier les pages dynamiques, la mémoire d'une session (les cookies) et les limites de ressources d'un serveur. Le chapitre suivant, consacré aux formulaires et aux méthodes GET et POST, s'appuiera directement sur ce que tu vas voir ici.
Le modèle client-serveur
Sur le Web, les pages ne sont pas stockées sur ton ordinateur : elles sont rangées sur une autre machine, qui les distribue à la demande. Cette organisation en deux rôles s'appelle le modèle client-serveur.
Pense à un restaurant. Toi, tu es à table : tu passes commande, tu ne cuisines pas. La cuisine prépare et renvoie le plat. Le navigateur joue le rôle du client à table, le serveur Web celui de la cuisine. Cette comparaison a une limite : à la différence d'une cuisine débordée, un serveur Web bien conçu répond à beaucoup de monde à la fois, comme nous le verrons plus loin.2
Le protocole HTTP
Pour que deux machines se comprennent, il faut un langage commun et des règles d'échange : un protocole. Pour le Web, ce protocole s'appelle HTTP.
Le Web repose donc sur deux ingrédients complémentaires : un langage de balisage pour décrire les documents (le HTML que tu connais) et un protocole client-serveur pour transférer l'information (HTTP).2 Le HTML dit ce que contient la page ; HTTP dit comment elle voyage.
HTTP ne travaille pas seul. Il est construit sur TCP, un protocole de transport en mode connecté.2 Cela signifie que le client et le serveur commencent par établir une connexion, puis échangent leurs messages à l'intérieur de cette connexion. Plus largement, le Web est un ensemble de logiciels et de protocoles basés sur TCP/IP.1 On peut se représenter l'ensemble comme des couches : TCP/IP s'occupe de faire circuler les données d'une machine à l'autre, HTTP donne un sens aux messages échangés entre un navigateur et un serveur.
Retrouver le serveur : adresse, DNS et port
Avant d'envoyer une requête, le navigateur doit savoir où est le serveur et à quelle porte frapper. Deux informations sont nécessaires, et toutes deux se déduisent de l'adresse que tu saisis.
Le DNS joue le rôle d'un annuaire : tu connais le nom d'un site, le DNS permet de retrouver la machine qui l'héberge.2 Sans lui, il faudrait retenir une suite de chiffres pour chaque site.
Le port n'est pas choisi au hasard : il se déduit du protocole. Par exemple, le port 80 correspond à HTTP et le port 21 à FTP.2 Pour HTTP, un serveur Web attend les connexions sur le port 80 par défaut.1 Les clients et serveurs utilisent en général des sockets, avec le port 80 côté serveur par défaut.2
| Protocole | Port par défaut |
|---|---|
| HTTP | 80 |
| FTP | 21 |
Suivre un échange complet
Rassemblons tout ce que nous avons vu. Tu saisis une adresse dans la barre de ton navigateur et tu valides. Voici ce qui se passe, dans l'ordre.
- Adresse saisieLe client reçoit l'adresse du site.
- LocalisationLe DNS donne le serveur, le protocole le port.
- Connexion TCPClient et serveur ouvrent la connexion.
- RequêteLe client demande la page au serveur.
- RéponseLe serveur renvoie la page, le client l'affiche.
Remarque que chaque échange est une paire : une requête, une réponse. Le serveur ne garde pas l'initiative. Si tu veux une autre page, ton navigateur doit émettre une nouvelle requête, et le serveur y répondra à nouveau.
Pages statiques, pages dynamiques et AJAX
Jusqu'ici, nous avons supposé que le serveur renvoie un fichier tel quel. C'est le cas d'une page statique. Mais un serveur peut aussi fabriquer la page au moment de la demande : c'est une page dynamique. Les systèmes embarqués eux-mêmes ont besoin de pages Web statiques et dynamiques.3
Le serveur peut aussi effectuer des réécritures d'adresses : il transforme l'adresse demandée en une autre adresse interne avant de calculer la réponse.1 Pour le visiteur, cela reste invisible.
C'est ici que ton cours sur JavaScript retrouve son sens : le code exécuté chez le client, c'est celui que tu as appris à écrire pour réagir aux événements de la page. Avec AJAX, ce code peut demander des données au serveur sans que toute la page soit rechargée, puis ne mettre à jour qu'une partie de ce qui est affiché.
Un protocole sans état : sessions et cookies
Dans le cycle requête-réponse, chaque échange est indépendant du précédent. Que se passe-t-il alors quand tu te connectes à un site, puis changes de page ? Le serveur doit pourtant se souvenir que c'est toi.
Les versions du protocole ont aussi leur importance. Avec HTTP 1.1, une même connexion peut servir à une série de requêtes successives entre un client et un serveur, mais il reste possible de fonctionner en mode HTTP 1.0.2 Un serveur très simple peut choisir HTTP 1.0, plus simple à implémenter que HTTP 1.1.3
Serveurs concurrents et ressources limitées
Un serveur Web n'a pas un seul client à servir. Quand un site est populaire, des milliers de navigateurs envoient leurs requêtes en même temps. Comment un serveur s'en sort-il ?
Ce n'est pas anodin. Un navigateur peut ouvrir plusieurs connexions vers un même serveur : certaines versions de Firefox, par exemple, pouvaient en ouvrir jusqu'à 15 par serveur.3 Si chaque visiteur en ouvre autant, le nombre de connexions que le serveur doit gérer se multiplie vite. Un serveur doit donc être capable de gérer plusieurs clients à la fois.3
À l'inverse, les applications Web modernes sont de plus en plus gourmandes en ressources, du côté des serveurs comme de celui des clients.3 D'où l'intérêt d'AJAX, vu plus haut : répartir le travail soulage le serveur.3
Client-serveur
- Rôles
- Client
- Serveur
- Requête-réponse
- HTTP
- Sur TCP
- Sans état
- Adresse
- DNS
- Port 80
- Dynamique
- URL
- AJAX
- Cookies
Exercices corrigés
Exercice 1 Compter les connexions d'un navigateur
Un navigateur peut ouvrir au maximum 15 connexions vers un même serveur. Une page d'un site de lycée charge des éléments provenant de 4 serveurs différents. Quel est le nombre maximal de connexions que le navigateur peut ouvrir en même temps pour afficher cette page ?
Indice 1
Le maximum de 15 s'applique à chaque serveur séparément.
Indice 2
Il suffit de répéter ce maximum pour chaque serveur.
Voir la correction pas à pas
On repère la donnée : 15 connexions au plus par serveur.
On repère le nombre de serveurs concernés : 4.
Le maximum s'applique serveur par serveur, donc on multiplie : .
Le navigateur ouvre donc au plus 60 connexions simultanées.
Le nombre de connexions croît vite avec le nombre de serveurs ; c'est une des raisons pour lesquelles un serveur doit pouvoir servir plusieurs clients à la fois.
Exercice 2 Requêtes et réponses pour une page
Une page d'accueil se compose d'un document HTML et de 12 autres éléments (images, feuilles de style, scripts). On suppose que chaque élément, y compris le document HTML, est obtenu par une requête suivie d'une réponse, et que le client prend l'initiative de toutes les requêtes. Combien de messages (requêtes et réponses) sont échangés au total pour afficher entièrement la page ?
Indice 1
Compte d'abord le nombre d'éléments à obtenir, sans oublier le document HTML.
Indice 2
Chaque élément donne deux messages : une requête et une réponse.
Voir la correction pas à pas
Le nombre d'éléments à obtenir est .
Chaque élément nécessite une requête et une réponse, soit 2 messages.
Le total est messages.
Sur ces 26 messages, 13 sont des requêtes envoyées par le client et 13 des réponses envoyées par le serveur.
Même une page simple provoque de nombreux échanges. Cette observation explique l'intérêt de limiter ce que le serveur doit envoyer, par exemple avec AJAX.
Exercice 3 Quel service reçoit la connexion ?
Une même machine héberge un serveur Web et un service de transfert de fichiers (FTP). Un élève saisit une adresse dans son navigateur avec le protocole HTTP. Explique, en une dizaine de lignes, comment la connexion arrive au bon logiciel : tu dois citer le rôle du DNS, celui du port, et dire quel numéro de port est utilisé par défaut pour HTTP et pour FTP.
Indice 1
Distingue ce qui désigne la machine de ce qui désigne le service.
Indice 2
Souviens-toi que le port se déduit du protocole.
Voir la correction pas à pas
Le navigateur, qui est le client, doit d'abord localiser la machine : il utilise le DNS pour retrouver le serveur à partir de son nom.
Il détermine ensuite le port : pour le protocole HTTP, le port par défaut est le 80 ; il se déduit du protocole.
La connexion TCP est établie vers la machine, sur le port 80.
Le service FTP, lui, correspond au port 21 : il n'est donc pas concerné par cette connexion.
Le logiciel de serveur Web qui écoute sur le port 80 reçoit la requête et renvoie la page demandée.
La machine est désignée par l'adresse obtenue grâce au DNS, le service par le port. C'est ce couple qui permet à plusieurs services de cohabiter sur une même machine.
Exercice 4 Pourquoi le panier se vide-t-il ?
Un développeur crée une boutique en ligne simple. Quand un visiteur ajoute un article, puis ouvre la page suivante, son panier est vide. Le développeur affirme : « HTTP aurait dû se souvenir de lui. » Corrige cette affirmation et explique ce qu'il doit mettre en place côté serveur.
Indice 1
Rappelle-toi si HTTP conserve la mémoire d'une requête à la suivante.
Indice 2
Pense au mécanisme qui construit une session au-dessus de HTTP.
Voir la correction pas à pas
On rappelle que HTTP est un protocole sans état : deux requêtes successives sont indépendantes l'une de l'autre.
L'affirmation du développeur est donc fausse : ce n'est pas le rôle de HTTP de se souvenir du visiteur.
Pour reconnaître un visiteur d'une requête à l'autre, l'application serveur doit mettre en place une session.
Le mécanisme de cookies permet justement à l'application serveur de construire cette session au-dessus de HTTP.
Avec les cookies, le serveur relie les requêtes successives du même visiteur et retrouve son panier.
La mémoire d'un site vient de l'application serveur et des cookies, pas du protocole HTTP lui-même, qui reste sans état.
Quiz
8 questions · correction immédiate · ton score reste sur ton appareil.
-
Le client est le navigateur : il reçoit les pages et en assure le rendu.1 La machine qui stocke les pages est le serveur, ce qui est l'erreur tentante. HTTP est un protocole, pas un rôle.
-
HTTP est construit sur TCP, protocole de transport en mode connecté.2 Le DNS sert à localiser le serveur, pas à transporter les messages. HTML est un langage de balisage, pas un protocole de transport.
-
C'est faux : la session est construite par l'application serveur, grâce aux cookies, au-dessus de HTTP.2 Croire que HTTP mémorise l'utilisateur est l'erreur tentante, alors que le protocole reste sans état.
-
Le client a besoin de la localisation du serveur (via le DNS) et du port, qui se déduit du protocole.2 Le contenu de la page est justement ce qu'il demande, et le nombre d'autres clients ne le concerne pas.
-
Le serveur utilise les paramètres passés dans l'URL pour calculer le contenu.1 Il ne change pas de protocole ni ne modifie le navigateur : il fabrique la réponse.
-
Le maximum s'applique à chaque serveur : .3 L'erreur tentante est de rester sur 15, comme si la limite était globale.
-
AJAX exécute une partie du code côté client pour soulager les serveurs, qui envoient des données brutes.3 Il ne remplace pas TCP et n'empêche pas les requêtes : le client continue d'en émettre.
Les questions qu'on se pose
Quelle est la différence entre le client et le serveur ?
À quoi sert le port ?
Pourquoi dit-on que HTTP est « sans état » ?
Parce que le protocole, à lui seul, ne relie pas deux requêtes successives. Pour qu'un site reconnaisse un visiteur d'une page à l'autre, l'application serveur utilise le mécanisme de cookies, qui ajoute une notion de session au-dessus de HTTP.2
Est-ce que tout ce qui s'affiche est stocké sur mon ordinateur ?
Non. Les pages sont stockées sur le serveur et envoyées au client, qui se charge de leur rendu.1 Pour obtenir une autre page, ton navigateur envoie une nouvelle requête.
Sources
- Cours DIU NSI - Protocole HTTP et interactions Web, CNRS. Consulté le 6 novembre 2026.
- Cours Web et réseaux - Domaine et protocoles, Université Grenoble Alpes. Consulté le 6 novembre 2026.
- Serveur web embarqué, Wikipédia. Consulté le 6 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.