Client-serveur (architecture)

L’architecture client-serveur est un modèle de communication réseau dans lequel deux entités jouent des rôles distincts et complémentaires :

  • Le client : entité (logicielle ou matérielle) qui initie une demande de service ou de ressource.
  • Le serveur : entité qui écoute les requêtes, les traite, et renvoie une réponse.

Principe fondamental

Le client consomme, le serveur fournit.

Caractéristiques essentielles

  • Asymétrie des rôles : le client ne répond pas aux serveurs ; le serveur n’initie pas de connexion.
  • Centralisation partielle : un serveur peut servir de nombreux clients (1 → N).
  • Protocoles standardisés : HTTP, FTP, SMTP, etc., définissent comment dialoguer.
  • Séparation des responsabilités : interface utilisateur (côté client) vs logique métier et données (côté serveur).

Exemples concrets

ContexteClientServeur
WebNavigateur (Firefox)Serveur web (Apache, Nginx)
EmailThunderbirdServeur IMAP/SMTP (Gmail, ProtonMail)
Base de donnéesApplication PHPMySQL, PostgreSQL
CMSWP-CLI (outil en ligne de commande)Site WordPress hébergé

Enjeux modernes

  • Fiabilité : si le serveur tombe, tous les clients sont affectés.
  • Évolutivité : le serveur doit gérer la charge (mise à l’échelle horizontale/verticale).
  • Sécurité : le serveur est une cible privilégiée (attaques DDoS, injections, etc.).
  • Latence : la performance dépend de la distance réseau entre client et serveur.

Dans les architectures modernes (cloud, microservices, edge computing), le modèle client-serveur reste dominant même si certains composants adoptent des schémas pair-à-pair ou serverless.

Synonymes / termes associés

Communication requête-réponse

Modèle client-serveur

Les contenus de définition restent publics. Les ressources (outils, grilles, supports) liées à cette fiche sont disponibles dans l’espace membre.