HeadlinesBriefing favicon HeadlinesBriefing.com

Conceitos Básicos de Redes de Aplicação

ByteByteGo •
×

Imagine um cenário simples onde uma aplicação web de comércio eletrônico chama um endpoint de API que retorna informações sobre um pedido de cliente. No nível da aplicação, isso parece uma operação bastante simples. Mas muita coisa está acontecendo nos bastidores.

Primeiro, o cliente consulta o DNS para obter o endereço IP vinculado ao endpoint da API. O DNS pode retornar o endereço de um balanceador de carga em vez do endereço de um servidor de aplicação específico. O sistema operacional então determina como os pacotes devem ser enviados para esse endereço IP.

Pode escolher enviá-los pela rede local, um provedor de serviços de Internet (ISP) ou vários outros roteadores. O objetivo final é que os pacotes de dados cheguem à rede de destino. O protocolo mais comum usado para isso é HTTP.

No entanto, antes que o HTTP possa enviar a solicitação, o cliente geralmente precisa estabelecer alguma forma de conexão com o servidor de destino. Com HTTPS tradicional, isso significa estabelecer uma conexão TCP. Neste tipo de conexão, o cliente e o servidor realizam um handshake trocando alguns pacotes iniciais para que ambos saibam que uma conexão foi estabelecida.

O cliente e o servidor então realizam um handshake de TLS. Somente após isso a solicitação HTTP pode ser enviada com segurança. Um balanceador de carga a recebe, seleciona uma instância de aplicação saudável e encaminha a solicitação.

A aplicação realiza seu trabalho e envia a resposta de volta pelo mesmo caminho. Tudo isso cai sob o domínio das redes. Devido à sua natureza ubíqua, as redes se tornam uma disciplina extremamente importante para os desenvolvedores dominarem.