Una connessione client-server è una connessione tra due o più sistemi in cui uno agisce come server e gli altri come client. Questo viene in genere fatto per consentire alle informazioni di essere accessibili a più utenti su una rete di grandi dimensioni. Tali connessioni possono essere utilizzate su piccola scala, come per reti aziendali locali, o per reti su larga scala come quelle utilizzate nei giochi online o nei siti di social network. Una connessione client-server può essere diretta, tra due macchine, o indiretta e coinvolgere diversi livelli di sistemi interconnessi.
La connessione client-server è uno degli aspetti più importanti di qualsiasi progetto di sistema client-server e può essere una connessione fisica o una connessione a lunga distanza tramite più relè. In generale, tuttavia, tale connessione consiste sostanzialmente in un qualsiasi modo in cui due o più sistemi separati, il client e il server, sono in grado di comunicare per trasmettere dati. La connessione client-server può essere abbastanza semplice, come una macchina che funge da server connessa ad un’altra macchina tramite una connessione fisica, come un cavo Ethernet, o più complicata, come un server connesso a migliaia di utenti tramite Internet.
Una semplice connessione client-server può essere una connessione fisica tra un singolo server e uno o più client. Il server funge da sistema su cui archiviare i dati, a cui collegare una o più macchine client. Le macchine client possono essere utilizzate individualmente e senza le informazioni necessarie sul server, sebbene siano in grado di accedere ai dati conservati sul server. Quando una richiesta del server viene inviata da un client, il server risponde inviando i dati richiesti attraverso quella connessione al client.
Si possono creare reti complicate in cui questa connessione client-server viene ripetuta centinaia o migliaia di volte. Un importante sito web di social network o un servizio di gioco online può fornire migliaia o centinaia di migliaia di client con connessioni a un server. È quindi possibile utilizzare più server per aumentare il numero di utenti che possono essere collegati come client, in modo che milioni di client possano essere collegati a questi vari server per l’accesso alle informazioni. I sistemi multilivello vengono spesso creati per ridurre il carico sui server, fornendo sistemi tra client e server in grado di gestire determinate richieste o agire per “dirigere il traffico” per il server. Una connessione client-server è in contrasto con le connessioni peer-to-peer in cui i singoli client si connettono tra loro, invece di un server, per condividere i dati.