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
POST /pedidos → Criar um novo pedido
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
}
}
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)