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
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
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
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
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.
Imagem do topo: Gizmodo