Desde tirar fotos com o celular a ouvir músicas por streaming
em um navegador, muitas das tecnologias que tomamos como natural em
2017 se parecem muito simples na superfície, mas envolvem uma série de
cálculos complexos por trás da cortina. Como um exemplo, pegue o
Google.com.br.
Você pode não pensar muito quando visita a ferramenta de buscas mais
famosa do mundo em seu navegador, mas existe um monte de coisas rodando
no plano de fundo para exibir aquela página. O The Next Web
publicou recentemente que o desenvolvedor da Mozilla, Alex Gaynor, está
escrevendo um guia detalhado do que está rolando quando você acessa o
Google.
O artigo dele no GitHub
tem mais de cinco mil palavras e só cresce, então se você não quer
ficar lendo todo o documento, separamos algumas partes e destacamos o
que mais importa para você ter uma noção do que acontece ao navegar por
uma página web.
Do teclado para a tela
Comece a pressionar as teclas. Imagem: Taduuda/Unsplash
Antes de mais nada o seu computador precisa interpretar os sinais que
vem do seu teclado – cada tecla pressionada corresponde a um circuito
elétrico específico que diz ao computador qual é a letra ou símbolo que
está apertando. O computador pergunta sobre novas entradas a
aproximadamente cada 10 milissegundos.
Assim que você clica dentro da barra de endereços do seu navegador e
aperta a tecla “g”, todos os tipos de código entram em ação – o seu
browser checa se você está no modo anônimo, e se você não estiver,
procura pelos seus favoritos e histórico para encontrar dados que
combinem. Ele também irá procurar por termos de pesquisa populares na
web, e irá atualizar a URL e as sugestões de busca enquanto você vai
adicionando novas letras.
Existem muitas chances de você ver “google.com.br” antes que termine
de digitar, graças aos algoritmos espertos que estão incorporados no seu
browser e seja lá qual foi o sistema de busca que esteja configurado no
seu computador. Isso pode ser confirmado quando você aperta a letra
Enter, enviando o código da letra Enter para o driver do computador de Dispositivo de Interface Humana, que repasse o comando para o sistema operacional.
Entendendo o que você digitou
Parece que você está tentando encontrar o Google… (Imagem: Captura de tela)
O próximo passo é analisar o que você digitou na barra de endereços –
é uma URL? É um termo de pesquisa? É alguma besteira que o seu gato
digitou ao andar em cima do seu teclado? Se o navegador conseguir
encontrar um protocolo válido (como HTTP) ou um domínio (como
Google.com.br), ele poderá abrir a página. Se não, ele passará a
solicitação para a sua ferramenta de buscas padrão, geralmente com um
código que indica que o browser referente.
Neste caso, somos levados a um site, então o navegador chega a lista de seu HTTP Strict Transport Security (HSTS), uma tabela pré-carregada com sites que têm preferência na conexão com o protocolo HTTPS, que é mais seguro. Se ele encontra uma combinação, manda a primeira tentativa de conexão via HTTPS, caso contrário utiliza o HTTP.
Em seguida, o browser realiza uma busca DNS,
que é como procurar o endereço de alguém – embora neste caso estejamos
tentando encontrar onde um site mora dentro da internet. O navegador
talvez tenha essa informação armazenada, caso você já tenha o visitado
recentemente, então ele checa o cache primeiro; senão, ele checa o livro
de endereços online armazenado dentro do seu sistema operacional, e
então algum que esteja armazenado na web mas que seja confiável, para
tentar achar o site que você quer acessar.
Fazendo a conexão com o site
O código da página principal do Google.com. (Imagem: Captura de Tela)
Uma vez que a procura do DNS aconteceu, existe uma outra camada de checagem e contra-checagem, conhecida como processo de Protocolo de Resolução de Endereço
(ARP, na sigla em inglês). Isso, na verdade, funciona dentro da busca
do DNS para descobrir se você está tentando se conectar com uma máquina
dentro de sua própria rede ou com um site no meio da web. Finalmente,
com o endereço e a localização do site estabelecida, o seu navegador
pode abrir um socket: uma conexão entre o seu computador e o site que
permite um fluxo de informação em duas vias, que vai e vem.
O próximo estágio é uma série de introduções virtuais e cordialidades
entre o seu computador e o site que você requisitou (neste caso, o
Google.com.br). Isso envolve o estabelecimento de uma língua em comum
para que o site exibido faça sentido, e a passagem por algumas checagens
de identidade para a segurança. A chave para isso é o aperto de mão
(handshake) Transport Layer Security (TLS), uma configuração de chaves secretas para provar que você está no site correto.
Uma vez que todos estão de acordo, a transferência de dados pode
começar – os navegadores podem fazer todos os tipos de requisições para
os sites e vice-versa, mas aqui nós só queremos o HTML e outros códigos
que pertençam à página inicial do Google.com.br. Em um espaço de
pequenas frações de segundos, a interface familiar de buscas está
aparecendo na tela do seu PC.
Exibindo a página inicial do Google
O resultado final. (Imagem: Captura de Tela)
Agora o seu navegador precisa interpretar e renderizar corretamente
todas as informações que está vindo em sua direção. Tipicamente, ele
precisa analisar o HTML (o esqueleto da página), o CSS (o estilo e a
maior parte do layout), e o JavaScript (que alimenta os elementos mais
interativos da página). Ele também pode ter que lidar com outros tipos
de dados, como imagens e PDFs, caso necessário.
É o motor de renderização
do navegador que faz o grosso desse trabalho, e diferentes
desenvolvedores de browsers implementaram seus próprios motores (e é por
isso que algumas páginas da web aparecem diferentes dependendo do
navegador que você usa): Chrome utiliza o Blink, que é baseado no motor WebKit (que também é utilizado pelo Safari), enquanto o Firefox tem o Gecko. A Microsoft usava o Trident no Internet Explorer, mas agora optou pelo EdgeHTML
em seu Microsoft Edge, que é baseado no Trident – se você já encontrou
algum site mais antigo que pede para que você volte para o Internet
Explorer, é porque ele utiliza tecnologias mais antigas que apenas o
Trident suporta.
O browser se vale da ajuda da CPU e GPU
do seu computador enquanto interpreta o código que recebe e transforma
tudo isso em um página da web – neste caso, uma caixa de pesquisa com a
logo do Google (ou talvez um doodle) acima dela. A menos que o seu
navegador, sua conexão com a internet, ou a página do Google esteja
quebrada, você já pode começar a pesquisar.
Tudo isso calculando e analisando e transferindo dados, e você nem
começou a fazer buscas – como as suas pesquisas são interpretadas e
organizadas pelo Google é uma história completamente diferente.
Simplificamos algumas partes do processo para economizar tempo, mas você
pode checar o documento completo
para mais detalhes (em inglês), mas agora você já deve ter uma noção
melhor do que acontece mesmo nas operações mais simples dentro do seu
navegador.
Fonte: Gizmodo