In informatica, client-server è un modello di architettura software composto da due parti, sistemi client e sistemi server, entrambi comunicanti su una rete di computer o sullo stesso computer. Un’applicazione client-server è un sistema distribuito composto da software client e server. L’applicazione client-server fornisce un modo migliore per condividere il carico di lavoro.Il processo client inizia sempre una connessione al server, mentre il processo server aspetta sempre le richieste di qualsiasi client.
Quando sia il processo client che il processo server sono in esecuzione sullo stesso computer, questo è chiamato una configurazione a posto singolo.
Un altro tipo di architettura software correlata è conosciuta come peer-to-peer, perché ogni host o istanza di applicazione può agire contemporaneamente sia come client che come server (a differenza dei server centralizzati del modello client-server) e perché ognuno ha responsabilità e status equivalenti. Le architetture peer-to-peer sono spesso abbreviate con l’acronimo P2P.
La relazione client-server descrive la relazione tra il client e come fa una richiesta di servizio al server, e come il server può accettare queste richieste, elaborarle, e restituire le informazioni richieste al client. L’interazione tra client e server è spesso descritta usando diagrammi di sequenza. I diagrammi di sequenza sono standardizzati nell’Unified Modeling Language.
Oggi sono molto usate sia le architetture client-server che quelle P2P.
Il tipo base di architettura software client-server impiega solo due tipi di host: client e server. Questo tipo di architettura è talvolta indicato come two-tier. L’architettura a due livelli significa che il client agisce come un livello e il processo del server come l’altro livello.
L’architettura software client-server è diventata uno dei modelli di base dell’informatica di rete. Molti tipi di applicazioni sono state scritte usando il modello client-server. Le funzioni standard in rete, come lo scambio di e-mail, l’accesso al web e l’accesso al database, sono basate sul modello client-server. Per esempio, un browser web è un programma client sul computer dell’utente che può accedere alle informazioni su qualsiasi server web nel mondo.