In de informatica is client-server een softwarearchitectuurmodel dat bestaat uit twee delen, client-systemen en serversystemen, die beide communiceren via een computernetwerk of op dezelfde computer. Een client-serverapplicatie is een gedistribueerd systeem dat bestaat uit zowel client- als serversoftware. Client-server-toepassingen bieden een betere manier om de werklast te verdelen. Het client-proces initieert altijd een verbinding met de server, terwijl het server-proces altijd wacht op verzoeken van een client.
Wanneer zowel het clientproces als het serverproces op dezelfde computer worden uitgevoerd, wordt dit een “single seat”-opstelling genoemd.
Een ander type verwante software-architectuur staat bekend als peer-to-peer, omdat elke host of applicatie-instantie tegelijkertijd als client en als server kan fungeren (in tegenstelling tot gecentraliseerde servers van het client-server-model) en omdat elk van beide gelijkwaardige verantwoordelijkheden en status heeft. Peer-to-peer-architecturen worden vaak afgekort met het acroniem P2P.
De client-server-relatie beschrijft de relatie tussen de client en de manier waarop deze een serviceverzoek indient bij de server, en hoe de server deze verzoeken kan accepteren, verwerken, en de gevraagde informatie aan de client kan retourneren. De interactie tussen client en server wordt vaak beschreven met behulp van sequentiediagrammen. Sequence diagrams zijn gestandaardiseerd in de Unified Modeling Language.
Zowel client-server als P2P architecturen worden tegenwoordig veel gebruikt.
Het basistype client-server software architectuur maakt gebruik van slechts twee typen hosts: clients en servers. Dit type architectuur wordt soms aangeduid als two-tier. De two-tier architectuur houdt in dat de client als de ene laag fungeert en het serverproces als de andere laag.
De client-server software-architectuur is een van de basismodellen van netwerkcomputing geworden. Veel soorten toepassingen zijn geschreven met gebruikmaking van het client-server-model. Standaardfuncties op het netwerk, zoals e-mailuitwisseling, webtoegang en databasetoegang, zijn gebaseerd op het client-server-model. Een webbrowser bijvoorbeeld is een client-programma op de gebruikerscomputer dat toegang kan krijgen tot informatie op een willekeurige webserver in de wereld.