Klient–server är en mjukvaruarkitektur (eller designmönster) som kännetecknas av att olika programvarukomponenter kommunicerar via ett tydligt gränssnitt (eller protokoll) där den ena komponenten uttryckligen begär tjänster av den andra.
Klient–server-lösningar är speciellt vanliga då program skall kommunicera över datornätverk, men används även internt i en och samma dator.