W informatyce klient-serwer to model architektury oprogramowania składający się z dwóch części, systemów klienckich i systemów serwerowych, obu komunikujących się przez sieć komputerową lub na tym samym komputerze. Aplikacja klient-serwer to system rozproszony składający się z oprogramowania klienta i serwera. Proces klienta zawsze inicjuje połączenie z serwerem, podczas gdy proces serwera zawsze czeka na żądania od dowolnego klienta.
Gdy zarówno proces klienta, jak i proces serwera są uruchomione na tym samym komputerze, nazywa się to konfiguracją jednomiejscową.
Inny typ powiązanej architektury oprogramowania jest znany jako peer-to-peer, ponieważ każdy host lub instancja aplikacji może jednocześnie działać zarówno jako klient, jak i serwer (w przeciwieństwie do scentralizowanych serwerów modelu klient-serwer) i ponieważ każdy z nich ma równoważne obowiązki i status. Architektury peer-to-peer są często skracane za pomocą akronimu P2P.
Zależność klient-serwer opisuje relację między klientem a tym, w jaki sposób zgłasza on żądanie usługi do serwera oraz w jaki sposób serwer może przyjąć te żądania, przetworzyć je i zwrócić klientowi żądane informacje. Interakcja pomiędzy klientem a serwerem jest często opisywana za pomocą diagramów sekwencji. Diagramy sekwencji są ustandaryzowane w języku Unified Modeling Language.
Dziś w powszechnym użyciu są zarówno architektury klient-serwer, jak i P2P.
Podstawowy typ architektury oprogramowania klient-serwer wykorzystuje tylko dwa typy hostów: klientów i serwery. Ten typ architektury jest czasami określany jako dwupoziomowy. Architektura dwuwarstwowa oznacza, że klient działa jako jedna warstwa, a proces serwera działa jako druga warstwa.
Architektura oprogramowania klient-serwer stała się jednym z podstawowych modeli obliczeń sieciowych. Wiele typów aplikacji zostało napisanych z wykorzystaniem modelu klient-serwer. Standardowe funkcje sieciowe, takie jak wymiana poczty elektronicznej, dostęp do stron WWW i dostęp do baz danych, są oparte na modelu klient-serwer. Na przykład, przeglądarka internetowa jest programem klienckim na komputerze użytkownika, który może uzyskać dostęp do informacji na dowolnym serwerze internetowym na świecie.