Computação cliente-servidor é um modelo de computação em que os clientes (geralmente implementados como dispositivos de usuário final, como computadores, telefones e tablets) solicitam serviços de servidores (normalmente implementados como computadores back-end).
Cada cliente interage com o servidor para enviar uma solicitação e obter a informação ou serviço solicitado. O cliente envia sua solicitação para um número de porta especificado no servidor, que identifica o serviço ou aplicação para o qual a solicitação deve ser enviada. O servidor então processa a solicitação e envia de volta uma resposta.
Aqui estão os principais componentes de uma arquitetura cliente-servidor:
1.
Cliente :esta é a entidade que solicita serviços do servidor. Os clientes podem ser dispositivos como computadores pessoais, smartphones ou outros dispositivos conectados em rede. Cada cliente envia solicitações de forma independente ao servidor.
2.
Servidor :este é um provedor de serviços que recebe e processa solicitações de vários clientes. Os servidores são normalmente computadores mais potentes ou hardware especializado dedicado ao fornecimento de serviços específicos.
3.
Protocolo de Comunicação :o cliente e o servidor se comunicam por meio de um protocolo de comunicação bem definido, como HTTP ou TCP/IP, que especifica como as solicitações são enviadas, como as respostas são recebidas e como os dados são transferidos entre eles.
4.
Serviços e Aplicativos :No lado do servidor, vários serviços ou aplicativos podem ser hospedados para atender às solicitações dos clientes. Isso pode incluir hospedagem na web, compartilhamento de arquivos, acesso a banco de dados, serviços de e-mail ou qualquer outro serviço específico.
5.
Conexão de rede :o cliente e o servidor podem ser conectados por meio de uma rede local (LAN), da Internet ou de outros tipos de redes. A rede fornece a infraestrutura para transmissão de dados entre eles.
Em um modelo cliente-servidor, o servidor centraliza a responsabilidade pela manutenção e atualização de dados, gerenciando a autenticação e segurança do usuário e fornecendo recursos ou serviços especializados. Ele também melhora a escalabilidade, pois pode lidar com várias solicitações de clientes simultaneamente, permitindo que os clientes acessem recursos e serviços compartilhados de maneira eficaz.
Exemplos do mundo real de sistemas cliente-servidor incluem navegação na web (servidores web que hospedam sites e navegadores dos usuários agindo como clientes), jogos online (servidores de jogos que hospedam sessões de jogos com os dispositivos dos jogadores como clientes), sistemas de e-mail (servidores de e-mail que armazenam e entregam mensagens e clientes de e-mail acessando o servidor para enviar ou receber e-mails).