DEV Community

Flávio Luiz
Flávio Luiz

Posted on

Como a comunicação na Web realmente funciona (com exemplos práticos e simples)

Quando você entra em um site de marketplace para comprar um tênis, muita coisa acontece por trás da tela. Existe uma verdadeira “conversa” entre computadores e servidores para que a página carregue, o preço apareça e o pedido seja processado. Essa conversa é a comunicação na web.

Quero explicar de forma simples alguns conceitos que usamos no dia a dia do desenvolvimento de software: HTTP, TCP, UDP, RPC, gRPC, REST e GraphQL.

TCP e UDP: o alicerce da conversa

Pense que a internet é como uma estrada. Para mandar informações, precisamos de regras de trânsito. É aqui que entram o TCP e o UDP.

TCP (Transmission Control Protocol):
É como enviar um produto por correio com aviso de recebimento. O servidor confirma cada pacote de dados que chegou. Isso garante segurança e ordem, mas pode ser mais lento.
→ Exemplo no marketplace: quando você confirma a compra, não dá pra perder nenhuma informação do cartão de crédito. O TCP garante que tudo chegue certinho.

UDP (User Datagram Protocol):
É como mandar uma mensagem de voz no WhatsApp: se perder um pedacinho, segue o baile. Ele é mais rápido porque não confirma cada entrega.
→ Exemplo no marketplace: se houver um sistema de recomendação em tempo real ou uma transmissão ao vivo de um vendedor, o UDP pode ser usado. Melhor receber algo rápido do que perfeito.

RPC e gRPC: pedindo favores

RPC (Remote Procedure Call) é como ligar para um amigo e pedir:
“Cara, pode rodar aquela função pra mim aí no seu computador e me passar o resultado?”.
No mundo web, RPC é isso: chamar métodos em outro sistema como se fossem locais.

gRPC (Google Remote Procedure Call) é uma versão moderna desse conceito. Ele é super eficiente, usa HTTP/2 e transmite dados em binário (Protobuf), em vez de texto.
→ Exemplo no marketplace: quando o app precisa verificar em milissegundos se um produto ainda está no estoque, gRPC é ótimo porque é rápido e econômico.

REST: o clássico que todo mundo usa

O REST é um estilo de comunicação baseado no HTTP. Ele trata cada recurso (produto, pedido, cliente) como uma URL.

GET /produtos/123 → Buscar o produto de id 123
Enter fullscreen mode Exit fullscreen mode
POST /pedidos → Criar um novo pedido
Enter fullscreen mode Exit fullscreen mode

GraphQL: perguntando só o que precisa

O GraphQL nasceu para resolver um problema do REST: o excesso ou falta de dados.
Imagine que a página do tênis precisa do nome, preço e cor.

No REST, você provavelmente recebe muito mais informação do que precisa (descrição, avaliações, imagens etc).

No GraphQL, você faz uma única query pedindo só o que quer:

{
  produto(id: "123") {
    nome
    preco
    cor
  }
}
Enter fullscreen mode Exit fullscreen mode

Conclusão

No fundo, todos esses protocolos e estilos são diferentes formas de resolver o mesmo problema: como dois sistemas trocam informações de maneira eficiente e confiável.

TCP/UDP → base da comunicação

HTTP → idioma padrão da web

RPC/gRPC → chamadas rápidas e diretas

REST → clássico e simples

GraphQL → sob medida, sem desperdício

Top comments (0)