O termo cliente/servidor foi cunhado na década de 1980 para descrever um modelo de computação distribuída em que aplicativos clientes solicitam serviços de processos servidores. Cliente/servidor é essencialmente uma relação entre processos executados em computadores separados interconectados por uma rede de computadores. O processo servidor é o provedor de serviços e o cliente processa um consumidor, portanto há uma clara separação de funções, em termos de hardware e software.
Hardware do servidor
Um computador servidor em uma rede cliente/servidor pode ser considerado hardware e software. Em termos de hardware, um computador servidor dedicado é normalmente um computador pessoal ou estação de trabalho. No entanto, um servidor pode precisar atender dezenas ou até centenas de clientes ao mesmo tempo, portanto, normalmente possui um processador mais rápido, mais memória e mais espaço de armazenamento do que um computador cliente.
Software de servidor
Um computador servidor executa um sistema operacional especial, como Microsoft Windows Server, Linux ou Unix, projetado especificamente para facilitar o compartilhamento de seus recursos. Dependendo da função operacional exata, um servidor pode permitir que os usuários compartilhem arquivos e impressoras em uma rede e forneçam acesso à Internet. Se os recursos estiverem em mais de um servidor, servidores individuais podem se especializar em uma tarefa específica – ou fornecer redundância ou duplicação de função – no caso de falha do servidor.
Cliente
Um computador cliente é normalmente um computador pessoal comum executando um sistema operacional como Windows XP, Windows Vista ou Windows 7. O sistema operacional inclui o software cliente, como correio eletrônico e software de navegação na Internet, que permite que o computador cliente acesse e interaja com os recursos compartilhados pelo servidor. Um computador cliente só se comunica diretamente com servidores, não com outros clientes. No entanto, é capaz de processar informações por si só, fato que o distingue do terminal burro usado em sistemas de computação centralizados de mainframe.
Clientes gordos e magros
Os computadores clientes podem ser descritos como "gordos" ou "finos", dependendo de onde a execução e a lógica de negócios de um aplicativo de software são executadas. Um cliente gordo tem a capacidade de controlar os dados. A execução é realizada principalmente no cliente, enquanto o servidor é responsável por enviar os dados para o cliente e vice-versa. Um thin client, por outro lado, é restrito ao que é conhecido como camada de apresentação do aplicativo de software, que aceita dados do servidor e os edita, enquanto a maior parte da execução é realizada no servidor.