DEV Community

Pedro Lucas
Pedro Lucas

Posted on

Arquitetura Cliente-Servidor na Web Moderna: REST e GraphQL

Arquitetura Cliente-Servidor na Web Moderna: REST e GraphQL

Introdução

O modelo cliente-servidor é uma das arquiteturas fundamentais da computação distribuída. Desde as décadas de 1980 e 1990, esse paradigma orienta o desenvolvimento de sistemas baseados na interação entre clientes, que solicitam serviços, e servidores, que os fornecem. Esse conceito, continua sendo a base da maioria das aplicações distribuídas.

Na Web moderna, a arquitetura cliente-servidor ganhou novas formas de implementação, especialmente com a popularização das APIs REST e do GraphQL, que adaptam os princípios clássicos para atender às necessidades atuais de escalabilidade, flexibilidade e integração em tempo real. Este artigo analisa como essas tecnologias aplicam o modelo cliente-servidor na prática e quais são os desafios envolvidos.


Fundamentação Teórica

1. Arquitetura Cliente-Servidor

A arquitetura cliente-servidor organiza o processamento em camadas. No modelo de duas camadas (2-tier), o cliente acessa diretamente o servidor, enquanto no modelo de três camadas (3-tier) ou multicamadas (n-tier) existem intermediários, como servidores de aplicação. Sommerville (2019) aponta que a separação de responsabilidades favorece a manutenção, modularidade e escalabilidade dos sistemas.

O princípio central permanece o mesmo: o cliente envia requisições e o servidor responde, o que permite estruturar sistemas de maneira clara e eficiente.


2. O Modelo Cliente-Servidor na Web

Na Web, o cliente normalmente é um navegador ou aplicação móvel, que envia requisições por meio do protocolo HTTP ou HTTPS. O servidor, por sua vez, processa essas requisições e devolve respostas em formatos como JSON ou XML. É como a natureza sem estado (stateless) do HTTP influenciou a definição do estilo arquitetural REST, consolidando o modelo cliente-servidor como base da comunicação em rede.

Com o crescimento da Internet, surgiram desafios relacionados à escalabilidade, segurança, autenticação e controle de concorrência. Para enfrentar esses problemas, padrões arquiteturais como REST e GraphQL foram amplamente adotados.


3. REST (Representational State Transfer)

REST é um estilo arquitetural que define princípios para sistemas distribuídos baseados na Web. Cada recurso é identificado por uma URI e manipulado por métodos HTTP, como GET, POST, PUT e DELETE.

Entre suas principais características estão:

  • Statelessness: cada requisição deve conter todas as informações necessárias para ser processada, sem depender de estado mantido no servidor;
  • Cacheability: as respostas devem indicar se podem ser armazenadas em cache, o que melhora o desempenho;
  • Uniform Interface: a comunicação entre cliente e servidor segue padrões consistentes e previsíveis;
  • Layered System: a arquitetura pode incluir camadas intermediárias, como proxies e gateways.

a simplicidade e compatibilidade com a infraestrutura existente tornaram o REST a abordagem mais difundida para a construção de APIs.


4. GraphQL

O GraphQL foi criado pelo Facebook em 2012 e disponibilizado como open source em 2015. Diferente do REST, em que cada endpoint retorna um conjunto pré-definido de dados, o GraphQL permite que o cliente especifique exatamente quais informações deseja. Isso evita problemas comuns como overfetching (dados em excesso) e underfetching (dados insuficientes).

De acordo com a documentação oficial do GraphQL (FACEBOOK, 2025), suas principais características são:

  • Schema e Tipagem Forte: a API define um esquema com tipos e relações, garantindo consistência;
  • Single Endpoint: todas as requisições passam por um único endpoint, simplificando o consumo;
  • Queries, Mutations e Subscriptions: suporte a leitura, escrita e comunicação em tempo real.

O modelo cliente-servidor continua presente, mas com maior flexibilidade na forma como os dados são entregues.


5. Comparação e Desafios

REST e GraphQL representam abordagens diferentes para o mesmo paradigma cliente-servidor.

  • O REST é amplamente suportado, simples de implementar e facilita o uso de cache.
  • O GraphQL se destaca em cenários de maior complexidade, nos quais o cliente precisa de controle preciso sobre os dados retornados.

Apesar das diferenças, ambos enfrentam desafios semelhantes:

  • Escalabilidade, necessária para lidar com grande volume de requisições;
  • Segurança, essencial para proteger endpoints contra ataques;
  • Monitoramento e Observabilidade, fundamentais para manter a performance e a confiabilidade.

Mesmo em arquiteturas mais modernas, como microserviços e serverless, a lógica cliente-servidor permanece como base. Cada microserviço funciona, essencialmente, como um servidor atendendo a requisições de outros clientes internos ou externos.


Conclusão

A arquitetura cliente-servidor consolidou-se como um modelo atemporal na engenharia de software. Tecnologias como REST e GraphQL demonstram como esse paradigma evoluiu para atender às demandas da Web moderna, oferecendo soluções para escalabilidade, flexibilidade e comunicação em tempo real.

Embora diferentes em seus mecanismos, REST e GraphQL reforçam a centralidade do modelo cliente-servidor, mostrando que sua adaptação constante é essencial para o desenvolvimento de aplicações distribuídas em ambientes cada vez mais complexos, como nuvem e dispositivos móveis.


Referências

  • FIELDING, R. T. Architectural Styles and the Design of Network-based Software Architectures. Tese (Doutorado) – University of California, Irvine, 2000.
  • RICHARDSON, L.; RUBY, S. RESTful Web Services. O’Reilly Media, 2007.
  • SOMMERVILLE, I. Engenharia de Software. 10. ed. São Paulo: Pearson, 2019.
  • TANENBAUM, A. S.; STEEN, M. Distributed Systems: Principles and Paradigms. 2. ed. Pearson, 2007.
  • FACEBOOK. GraphQL: A query language for your API. Disponível em: https://graphql.org/. Acesso em: 28 set. 2025.

Top comments (0)