Executando verificação de segurança...
4

[ CONTEÚDO ] Entendendo como o Cliente se comunica com o Servidor de forma simples

Introdução:

Este pode ser um tópico um pouco assustador para iniciantes, devido a quantidade de conteúdo que existe sobre HTTP, Web servers, dentre outros protocolos que também estão presentes durante a comunicação como: TCL, TCP e IP.

Hoje explicarei da forma mais simples possível como essa comunicação acontece, e sobre cada passado que ocorre nos bastidores. Não irei me aprofundar em todos os detalhes técnicos, até porquê este não é o objetivo de artigo.

Comunicação entre Cliente e Servidor:

Se você é programador, ou trabalha em alguma outra área de TI, já deve saber, ou já pensou no processo que ocorre, ao clicar num Link e ser rederecionado para a respectiva página. Este processo, é bem simples, na verdade, e irei explicar em passos.

Vamos suport, que estamos tentando acessar o site tabnews.com.br. Para fazer isso, precisamos de um meio para ir ao tabnews.com.br. Qual seria esse meio? navegadores! Browsers são o user-cliente, o meio que o usuário vai utilizar para ir ao tabnews.com.br.

Então, agora temos o meio, que é o navegador, vamos supor o chrome, e temos o nosso endereço: tabnews.com.br. Com isso, já é possível ir até o tabnews.com.br.

E se eu não tivesse o endereço que eu quero?

Se você já tem experiência com motores de busca e sabe com funciona, pode pular o próximo tópico, onde continuamos acima.

Caso você não tivesse a url do tabnews.com.br, tivesse somente o tabnews. E agora? Como chegarei até o endereço correto, afinal o tabnews não é o endereço completo, está faltando algo chamado TLD, que é o .com e o .br. Sem isso, não tem como chegar lá.

Ai que entra os motores de busca. Todos os navegadores tem um motor de busca integrado (ao menos eu nunca vi algum sem um motor de busca). Os motores de busca entram em ação, quando você digita algo na barra de url do navegador,(ou na barra padrão mesmo, dependendo do seu navegador. Os dois fazem a mesma coisa ), e não corresponder a um endereço válido, com uma label, TLD, dentre outras coisas, o motor de busca irá te levar até uma página com resultados com base na sua pesquisa. Isso aqui, não é novidade né?

Desde muito tempo, pesquisamos no google, que é um motor de busca, e sempre aparecia vários links com base na nossa pesquisa. Isso é o papel de um motor de busca, ele auxilia o usuário na sua procura pelo o site em específico.

Então pesquisar tabnews não levaria para o site na hora, mas levaria para vários links relacionados. Motores de Busca tem seu próprio algoritmo, e forma de posicionar o site. Como o tabnews tem um excelente SEO, ele normalmente é o primeiro link.

Exemplo:

ilustration

Processos que ocorrem durante uma comunicação:

Como dito anteriormente em Comunicação entre Cliente e Servidor, precisamos de uma url, e um navegador.

Por baixo dos panos ocorrem diversos processos que eu irei explicar um por um de maneira mais simples possível. Antes, quero mencionar algo não previamente dito: Navegadores, não apenas servem para buscar recursos na internet, eles vão muito além disso. Após o servidor nos enviar um recurso, ele vai ler e interpretar. Então, o fato de podermos está vendo qualquer site dentro do navegador, é porque o navegador leu e interpretou.

Continuando, vamos agora passar pelo o passo a passo dos ocorreidos:

  • Abro meu navegador;
  • Procuro por: tabnews.com.br;
  • O navegador irá pedir para o DNS o IP correspondente ao tabnews.com.br;
  • O DNS irá enviar de volta o IP se existir, caso contrário é Error 404 NOT FOUND;
  • O Navegador irá estabelecer uma conexão entre o client(nevgeador) e o servidor que tem o endereço do IP retornado pelo o DNS;
  • Após isso, o servidor irá verificar o request(pedido) do usuário, e se o servidor, puder retornar aquilo que o client está pedindo, os recursos são enviados;
  • O navegador recebe esses recursos, ler e interpreta;

Estes são os processos que ocorrem por debaixo dos panos durante uma comunicação entre client e Server. Entretanto, ainda podem ter mais coisas como Proxy, cache, e outros processos que ocorrem entre o client e o servidor.

Você está vendo muitos nomes como Proxy, cache, request e DNS. Não precisa se preocupar no momento com eles, é possível entender como a comunicação é feita, sem se aprofundar neles no momento, mas eventualmente será necessário, que ao longo dos seus estudos, domine esses conceitos.

Mas se você é dos que gostam de entender por completo tudo, antes de prosseguir, assim como eu, aqui tem uns links que podem ser úteis:

O que é DNS?
Servidor Proxy
Fetch API (Para os dev JavaScript)

HTTP:

Vimos como as coisas acontecem por debaixo dos panos, mas assim como fora das telas, precisamos de um idioma para se comunicar, no nosso caso, português para se comunicar com nativos e outro idioma para pessoas de fora, existe sim uma forma de comunicação entre client e servidores;

Achou que era mágica o navegador pedir para o servidor o recurso? Nesse processso, ocorreu sim uma comunicação, e foi utilizando HTTP.

O que é HTTP?

HTTP é um protocolo amplamente adotado com a finalidade de comunicação entre client e servidor. Bom, falando de maneira mais simples, HTTP é a forma que o client e servidor se comunicam para pedir e enviar recursos pela a internet.

A boa noticia é que HTTP é uma forma padronizada de se comunicar, então você não precisará aprender diversos protocolos de comunicação, assim como aprendimos alguns idiomas como o inglês.

Dito isso, como essa comunicação ocorre? Bom, o HTTP possui methods, que possui valores como GET, POST, HEAD, PUT, DELETE, Dentre outros. O método que utilizamos, diz para o servidor, o que queremos fazer.

Por exemplo, se utilizarmos o método GET, estamos dizendo para o servidor que queremos um recurso. Se usarmos o método POST, significa que queremos enviar dados para o servidor, geralmente informações de um formulário.

E assim, segue. Cada método tem sua própria funcionalidade. O HTTP também possui algo chamado Headers, que carrega informações extra sobre o nosso request, como o tipo de arquivo, a linguagem do conteúdo, dentre diversas outras coisas.

HTTP é um assunto muito, mas muito extenso mesmo. então, não irei me aprofundar em todos os aspectos aqui. Acima deixei uma base bem supercial, para entender de forma simples, o que ocorre. Ainda existe muito, principalmente por trás do Headers.

Você pode encontrar mais informações sobre HTTP aqui: HTTP

Então, no exemplo passado a passo que colocamos mais acima, seria algo como:

sequenceDiagram
client->>servidor: Method: GET, Tabnews.com.br
servidor-->>client: Response: Text/html, status 200...

O servidor, responde com um response object, que contém algumas informações extras sobre a responsa, como metadados, status, dentre outras coisas.

TLS, TCP e IP

Vimos o que é um client se comunicar com um servidor. Quais são os passo a passo por debaixo dos panos e o HTTP.

Só que, assim como é necessário um meio, um tradutor(DNS), dependendo do caso, um auxiliar(moto de busca) e uma forma de se comunicar HTTP, mas, esquemos de nada?

Sim, precisamos de algo fundamental, que não pode falta durante uma comunicação, que ocorre no meio do caminho, segurança,integridade e precisão.

Já falamos um pouco sobre IP, durante o DNS, mas irei explicar mais um pouco sobre, por último, pois IP é a última camada da comunicação.

TLS (Transport Layer Security):

TSL, é responsável por encripitar todo o conteúdo que está sendo enviado, garantido seguraça durante o caminho. antigamente, a maioria dos sites utilizavam SSL. o TSL é o seu sucessor, e a forma mais segura se proteção de dados atualmente durante uma comunicação. Para quem não sabe, o SSL foi descontinuado e está obsoleto atualmente, se eu não me engano, isso ocorreu em 2015, sendo substituido pelo o TSL que resolveu seus problemas.

TCP:

O TCP é o carinha que controla todos os pedaços dos dados. Quando fazemos um request, os dados são quebrados em binário e enviados de pedaço em pedaço através de várias rotas.

O TCP garante que todos os pedaços cheguem ao destino final, e na ordem correta. Se por ventura ocorrer a perda de um pedaço, o TCP irá emitir este pedacinho novamente e aguarda sua chegada.

Atualmente, já está sendo trabalhado no HTTP/3, que basicamente tem a maiorias das suas alterações voltadas para o TCP, substituindo pelo o QUIC, que é basicamente uma versão aprimorada.

IP:

IP tem papel fundamental na comunicação HTTP. Quando o DNS traduz o nome do dominio, o IP retornando é usado para estabelecer uma comunicação entre client e o servidor. Cada pedacinho sendo enviados através das redes, é encapsulado dentro de um IP, com o endereçamento de quem enviou (client) e de quem receber o pedido (servidor).

Conclusão:

Espero ter ajudado você a entender melhor como ocorre a comunicação entre um client e um servidor.

Ainda tem muito para se aprender como CORS, Headers, HTTP/3, dentre várias outras coisas que você pode encontrar pesquisando na internet facilmente.

Bom, é isso, obrigado pela atenção.

Carregando publicação patrocinada...
2

Excelente explicação!
É importante mencionar que essa comunicação também pode acontecer entre servidores, sem envolver necessariamente o navegador, ocorrendo diretamente entre os servidores.

1
1

Sim, isso também é possível! A ideia principal era para os novatos que estão aprendendo agora Front-end ou até mesmo um back-end entender de forma mais simples.

Não cheguei a citar esse tópico,pois não iria me aprundar demais nele.