În informatică, client-server este un model de arhitectură software format din două părți, sisteme client și sisteme server, ambele comunicând printr-o rețea de calculatoare sau pe același calculator. O aplicație client-server este un sistem distribuit alcătuit din software client și server. Aplicația client-server oferă o modalitate mai bună de împărțire a volumului de muncă.Procesul client inițiază întotdeauna o conexiune cu serverul, în timp ce procesul server așteaptă întotdeauna cereri de la orice client.
Atunci când atât procesul client, cât și procesul server se execută pe același computer, se numește configurație cu un singur sediu.
Un alt tip de arhitectură software conexă este cunoscut sub numele de peer-to-peer, deoarece fiecare gazdă sau instanță de aplicație poate acționa simultan atât ca client, cât și ca server (spre deosebire de serverele centralizate ale modelului client-server) și deoarece fiecare are responsabilități și statut echivalente. Arhitecturile peer-to-peer sunt adesea abreviate cu acronimul P2P.
Relația client-server descrie relația dintre client și modul în care acesta face o cerere de serviciu către server și modul în care serverul poate accepta aceste cereri, le procesează și returnează clientului informațiile solicitate. Interacțiunea dintre client și server este adesea descrisă cu ajutorul diagramelor de secvență. Diagramele de secvență sunt standardizate în limbajul de modelare unificat.
Atât arhitecturile client-server, cât și cele P2P sunt utilizate pe scară largă în prezent.
Tipul de bază al arhitecturii software client-server utilizează doar două tipuri de gazde: clienți și servere. Acest tip de arhitectură este denumit uneori "pe două niveluri". Arhitectura pe două niveluri înseamnă că clientul acționează ca un nivel, iar procesul server acționează ca celălalt nivel.
Arhitectura software client-server a devenit unul dintre modelele de bază ale calculului în rețea. Multe tipuri de aplicații au fost scrise folosind modelul client-server. Funcțiile standard de rețea, cum ar fi schimbul de e-mail, accesul la internet și accesul la baze de date, se bazează pe modelul client-server. De exemplu, un browser web este un program client de pe calculatorul utilizatorului care poate accesa informații de pe orice server web din lume.


