Em Informática, cliente-servidor é um modelo de arquitetura de software que consiste em duas partes, sistemas cliente e sistemas servidor, ambos comunicando-se através de uma rede de computadores ou no mesmo computador. Uma aplicação cliente-servidor é um sistema distribuído composto tanto de software cliente quanto de servidor. O processo cliente-servidor sempre inicia uma conexão com o servidor, enquanto o processo servidor sempre espera por solicitações de qualquer cliente.

Quando tanto o processo cliente quanto o processo servidor estão sendo executados no mesmo computador, isto é chamado de configuração de um único assento.

Outro tipo de arquitetura de software relacionado é conhecido como peer-to-peer, porque cada host ou instância de aplicação pode agir simultaneamente como cliente e servidor (ao contrário dos servidores centralizados do modelo cliente-servidor) e porque cada um tem responsabilidades e status equivalentes. As arquiteturas peer-to-peer são freqüentemente abreviadas usando a sigla P2P.

O relacionamento cliente-servidor descreve a relação entre o cliente e como ele faz uma solicitação de serviço ao servidor, e como o servidor pode aceitar essas solicitações, processá-las e devolver as informações solicitadas ao cliente. A interação entre cliente e servidor é freqüentemente descrita usando diagramas de seqüência. Os diagramas de seqüências são padronizados na linguagem Unified Modeling.

Tanto as arquiteturas cliente-servidor como P2P estão em ampla utilização hoje.

O tipo básico de arquitetura de software cliente-servidor emprega apenas dois tipos de hosts: clientes e servidores. Este tipo de arquitetura é às vezes referido como dois níveis. A arquitetura em duas camadas significa que o cliente atua como uma camada e o processo servidor atua como a outra camada.

A arquitetura de software cliente-servidor se tornou um dos modelos básicos da computação em rede. Muitos tipos de aplicações foram escritas usando o modelo cliente-servidor. Funções padrão de rede como troca de e-mail, acesso web e acesso a banco de dados, são baseadas no modelo cliente-servidor. Por exemplo, um navegador web é um programa cliente no computador do usuário que pode acessar informações em qualquer servidor web do mundo.