Klient–server (anglicky client–server, výslovnost [ˌklaiənt ˈsəːvə(r)]) je síťová architektura, která odděluje klienta (často aplikaci s grafickým uživatelským rozhraním) a server, kteří spolu komunikují přes počítačovou síť. Klient–server aplikace obsahují jak klienta, tak i server. Alternativou architektury klient–server je peer-to-peer, kde spolu však komunikují počítače mezi sebou bez serveru.
Klient–server popisuje vztah mezi dvěma počítačovými programy, v nichž první program, klient, žádá o služby jiný program zvaný server. Na tomto modelu je založen například přístup na e-mail, Web, přístup k databázi apod. Příkladem je webový prohlížeč, tj. klientský program na uživatelském počítači, který může přistupovat k informacím na libovolném webovém serveru na světě. Chcete-li například ze svého počítače zkontrolovat zůstatek na Vašem bankovním účtu, Váš webový prohlížeč předá tento dotaz webovému serveru banky, tento server předá dotaz databázovému programu, který pošle dotaz databázovému serveru. Odtud je zůstatek vrácen zpět do banky databázovému programu, ten ji zase pošle zpět do Vašeho webového prohlížeče a ten výsledný zůstatek zobrazí.
Model klient/server se stal jedním z hlavních myšlenek síťové technologie. Tento model používá z uživatelského pohledu například většina obchodních či firemních aplikací. Z technického pohledu ho implementují například i tyto internetové protokoly: HTTP (pro web), SMTP (e-mail), Telnet, DNS, amd.
Každá instance klienta může posílat žádost o data jednomu nebo více připojeným serverům. Na druhé straně, servery mohou akceptovat tyto žádosti, zpracovat je a vrátit klientovi požadovanou informaci. Tento koncept může být použit více různými způsoby, avšak základ zůstává v zásadě stejný.
Klient/server obsahuje pouze dvě části: serverovou a klientskou. Tento typ architektury je někdy označován jako two-tier [ˈtuː ˌtiə(r)] (dvouvrstvá). Umožňuje zařízením sdílet soubory, nebo nějaké jiné zdroje.
Nejčastější klienti jsou dnes webové prohlížeče. Servery jsou většinou webové servery, databázové servery a e-mailové servery, mohou se sem počítat i herní servery. V případě MMORPG provozuje server výrobce hry, u dalších typů her jako server slouží jeden z hráčů, který spustí hru v serverovém módu (tzv. Host)
Interakce mezi klientem a serverem je často popisována pomocí sekvence schémat. Sekvenční diagramy jsou standardizovány v Unified Modeling Language.
Další typ síťové architektury se nazývá Peer-to-peer, nebo taky zkráceně P2P. U této architektury může každý hostitel nebo instance programu fungovat zároveň jako klient i jako server (mají rovnocenné postavení i zodpovědnost).
Architektura klient–fronta–klient je zjednodušením jak klient–server přístupu, tak P2P přístupu. Funkce serveru jsou omezeny na pasivní předávání zpráv a dat a klienti neplní roli serveru, ale implementují snadnější komunikační protokol. Architektura sestává ze dvou či více klientů, kteří si vyměňují data a zprávy přes nezávislý třetí uzel, tzv. pasivní frontu.
Například dva internetoví roboti mohou ověřit znalost určitého zpracovávaného URL prostřednictvím centrální databáze, aniž by došlo k přímé komunikaci mezi nimi (což by odpovídalo modelu P2P) nebo by byli touto databází řízeni (což by odpovídalo modelu klient–server).
Mezi zvláštní druhy serverů patří webové servery, FTP servery, aplikační servery, databázové servery, poštovní servery, souborové servery, tiskové servery a terminálové servery. Většina webových služeb jsou rovněž typy serverů.
V tomto článku byl použit překlad textu z článku Client-server na anglické Wikipedii.