Um computador servidor é aquele que executa um ou mais programas servidores os quais compartilham seus recursos ou serviços com os clientes. Um cliente não compartilha qualquer dos seus recursos, mas requisita de um servidor recurso ou serviço.
Neste modelo, os clientes são aqueles que iniciam a comunicação com os servidores, os quais aguardam a requisição dos clientes e somente após processá-las, respondem a solicitação. Deste modo, é possível dizer que o cliente é a parte ativa da comunicação enquanto que o servidor é a parte reativa, ou por vezes também chamado de passiva, deste diálogo.
Uma característica importante do modelo cliente-servidor é que ele descreve um relacionamento cooperativo de programas na execução de um trabalho. O componente servidor provê um recurso ou serviço para um ou mais clientes. Os clientes são aqueles que têm a responsabilidade de iniciar as devidas requisições de modo que possam fazer uso dos recursos ou serviços disponibilizados.
Como forma de ilustrar esses conceitos, imagine dois programas: um servidor web e um navegador web.
O servidor web, como o próprio nome diz é o nosso programa servidor. Esse servidor tem a finalidade de servir, por meio do protocolo HTTP (Hypertext Transfer Protocol), páginas web, que geralmente são documentos escritos utilizando-se a linguagem de programação HTML (HyperText Markup Language). O protocolo HTTP e a linguagem HTML serão abordados oportunamente. Existem diversos programas que funcionam como servidores web e como exemplo de alguns produtos comerciais utilizados atualmente, observe a tabela 1:
| Nome Programa | Fabricante |
|---|---|
| Apache Http Server (Apache) | Apache |
| Internet Information Server (IIS) | Microsoft |
| Nginx | NGINX, Inc |
| Google Web Server (GWS) |