É um modelo de arquitetura de software em que o sistema é dividido em duas partes:
Cliente
- Quem faz as solicitações.
- Interface usada pelo usuário (navegador, app, programa).
- Envia pedidos ao servidor (ex.: abrir uma página da web).
Servidor
- Quem processa e responde às solicitações.
- Recebe os pedidos do cliente.
- Processa a requisição (consulta banco de dados, aplica regras de negócio).
- Retorna a resposta (ex.: HTML, JSON, arquivo).
Exemplo
- Você digita www.google.com no navegador (cliente).
- O navegador envia um pedido HTTP ao servidor do Google.
- O servidor processa e devolve a página com os resultados.
- O navegador exibe para você.
Vantagens
- Separação entre interface e processamento.
- Centralização de dados no servidor (gera mais controle e segurança).
- Facilidade de manutenção (alterações no servidor se refletem para todos os clientes).
Desvantagens
- Dependência da conexão com o servidor.
- Se o servidor cair, todos os clientes são afetados.
- Pode gerar sobrecarga no servidor se muitos clientes acessarem ao mesmo tempo.
Tipos de Cliente-servidor
Cliente Fino (Thin Client)
É um cliente “leve”, que faz pouca coisa localmente.
Apenas envia requisições para o servidor e exibe a resposta.
Processamento: quase todo fica no servidor (banco de dados, cálculos, lógica de negócio).
Exemplos:
- Navegadores de internet (Chrome, Firefox).
- Aplicações de terminal em nuvem (Citrix, Remote Desktop).
Cliente Gordo (Thick Client)
É um cliente “pesado”, que faz grande parte do processamento localmente.
Armazena parte dos dados e da lógica no próprio dispositivo do usuário.
Processamento: dividido entre cliente e servidor.
Exemplos:
- Programas como Microsoft Word, Photoshop, jogos no PC → funcionam mesmo sem internet e só usam servidor em alguns momentos.
- Apps de banco no celular que já fazem cálculos antes de enviar a requisição ao servidor.
Comunicação via Protocolos
Para que a comunicação entre cliente e servidor seja bem-sucedida, eles precisam seguir um conjunto de regras ou uma “linguagem” comum. Essa linguagem é chamada de protocolo de rede.
Existem vários protocolos, cada um com uma finalidade específica. Eles trabalham juntos em diferentes camadas para garantir que a comunicação seja completa e confiável.
Protocolos chave na comunicação web
1. TCP/IP
O TCP/IP (Transmission Control Protocol/Internet Protocol) é a espinha dorsal de toda a internet. Ele é, na verdade, um conjunto de protocolos que funciona em duas camadas principais:
IP (Internet Protocol):
É como o serviço de correios. Ele se preocupa em endereçar e encaminhar os “pacotes de dados” (pequenos pedaços de informação) do ponto A ao ponto B.
⚠️ O IP não garante que todos os pacotes cheguem na ordem correta, ele apenas os envia.TCP (Transmission Control Protocol):
Funciona como um serviço de entrega com confirmação. Ele garante que os pacotes de dados cheguem ao destino na ordem certa, sem perdas e sem duplicatas.
Se um pacote se perde no caminho, o TCP pede que ele seja reenviado. Isso torna a comunicação muito mais confiável.
👉 Em resumo:
O IP cuida do roteamento, e o TCP cuida da confiabilidade e organização da entrega.
2. HTTP e HTTPS
O HTTP (Hypertext Transfer Protocol) é o protocolo usado para a comunicação na web.
É a linguagem que seu navegador usa para solicitar uma página da internet a um servidor, e que o servidor usa para enviar essa página de volta.
Como funciona o HTTP:
Quando você digita um endereço em seu navegador (cliente), ele envia uma requisição HTTP para o servidor.
Essa requisição diz algo como:“Olá, servidor! Por favor, me envie a página inicial do seu site.”
O servidor processa o pedido e envia uma resposta HTTP com o conteúdo da página.
HTTPS (Hypertext Transfer Protocol Secure):
É a versão segura do HTTP.
Ele adiciona uma camada de criptografia (SSL/TLS) para proteger a comunicação entre cliente e servidor.
Isso é essencial para transações financeiras, logins e troca de dados sensíveis.
A criptografia embaralha os dados, tornando-os ilegíveis para qualquer pessoa que possa interceptá-los.
👉 Em resumo:
- HTTP: troca de informações na web.
- HTTPS: versão segura do HTTP, com criptografia.
Como a Arquitetura Cliente-Servidor se aplica ao projeto
O Cliente (usuário)
Pense no cliente como a pessoa que está usando o projeto. Ela pode estar em seu celular ou computador, usando um aplicativo ou site.
A função do cliente é:
- Enviar a notícia: A pessoa copia e cola um link ou trecho da notícia.
- Fazer a requisição: O aplicativo ou site (cliente) envia essa informação para o “cérebro” do projeto.
- Receber a resposta: O cliente espera e recebe a resposta do servidor, que dirá se a notícia é fake ou não.
O Servidor (o cérebro do projeto)
Pense no servidor como o “cérebro” que faz todo o trabalho pesado.
A função do servidor é:
- Receber a requisição: O servidor recebe a notícia enviada pelo cliente.
- Processar a informação: Usa algoritmos, bancos de dados e inteligência artificial para analisar a notícia.
Ele pode comparar com outras fontes, verificar fatos e analisar a linguagem. - Gerar a resposta: Após a análise, o servidor decide se a notícia é fake ou não.
- Enviar a resposta: O servidor envia a resposta de volta para o cliente, que a exibe na tela para o usuário do projeto.
Referências
https://www.eposaudio.com/en/us/insights/articles/thin-client-or-thick-client-whats-the-difference https://www.fortinet.com/resources/cyberglossary/thin-client