Os navegadores de internet, sejam em computadores, tablets, tv’s ou celulares utilizam algumas estratégias para manter um caminho de comunicação entre o aparelho ao qual estão ligados e os sites que visitam.
A comunicação via protocolo HTTP/HTTPS, protocolos de páginas de internet, é feita sem guardar informações de estado. Ou seja, o navegador solicita uma página de um site a um servidor e esse faz a entrega dessa página sem guardar as informações de quem solicitou. Em informática, chamamos de ‘stateless’. Nenhuma referência ou informação sobre transações antigas são armazenadas, e cada uma delas é feita do zero.
Esse era o processo inicial dos servidores de internet. Ou seja: você solicita uma informação e essa informação lhe é passada e fim. Agora imagine no mundo atual, você precisar fazer um cadastro em um site e todas as páginas que você visitar solicitar que você digite novamente seu login e senha. Não, não seria nada interessante.
Então, por pura imposição da necessidade do meio digital, os navegadores e servidores de internet criaram 3 estratégias de guardar o estado da comunicação mesmo em um ambiente stateless como ainda é a internet.
A primeira das estratégias é o cache. O seu navegador solicita uma página a um servidor e junto com a informação da página, o servidor envia um dado de tempo de vida dessa informação. O TTL de uma página faz com que o navegador não solicite novamente essa mesma página ao servidor enquanto o tempo de vida da página ainda for válido. Ou seja, se eu visito uma página e o servidor diz que essa página seguirá imutável por 24 horas, eu posso voltar a visitar a mesma página no meu navegador nesse período que o navegador vai mostrar novamente a página já guardada no cache e não vai solicitar novamente a página ao servidor. Normalmente os roteadores que fazem a ponte entre duas extremidades da comunicação de internet fazem um cache de TTL. O motivo de se fazer cache é diminuir o volume de tráfego de alguns servidores. Isso diminui o processamento do servidor e ele poderá ficar disponível para mais visitas sem lentidão e travamentos.
A segunda estratégia é a session. A sessão de acesso de navegadores para servidores de internet consiste em solicitar uma página a um servidor e esse lhe devolver a página com um sessionID (identificador). Com isso, o seu navegador pode usar esse sessionID para se identificar e o servidor tomar algumas decisões sobre sua solicitação, tal qual, escolher se aceita sua nova solicitação, se você tem direito a visitar a próxima página ou solicitar que você preencha um formulário com seu login e senha para permitir seu acesso. A session lhe manda um identificador mas guarda as demais informações no próprio servidor. Normalmente os servidores quardam essa session durante 20 minutos de inatividade. Na próxima página que você solicitar dentro desse período, o servidor saberá que seu login e senha foram informados, renova seu tempo de 20 minutos e segue lhe passando informações solicitadas.
A terceira estratégia é o cookie. O biscoito serve para guardar a informação no sentido contrário: o servidor envia um cookie para meu navegador, informa o tempo de validade desse cookie e guarda dentro do cookie em se navegador as informações de seu estado. Ou seja, seu login e senha podem ser armazenados no seu navegador e não no servidor.
Todas essas estratégias são interessantes e também problemáticas. O cache impede que uma atualização naquela página durante o tempo de vida da mesma não seja vista por seu navagador. Esse atraso na atualização em uma página de notícias é péssimo. Já a session obriga o servidor a guardar suas informações durante todo o tempo de vida da session. Para um visitante isso pode ser feito facilmente, mas para sites com 1000 visitas por hora (acredite que isso é normal em portais de notícias) isso pode representar o travamento do servidor por acúmulo de dados dos visitantes. Finalmente o cookie obriga o navegador a fornecer as informações em todas as solicitações novamente e aumentar muito o tráfego entre as partes envolvidas.
Servidores de internet e navegadores trabalham motivados por manter a comunicação entre os interessados não importando qual o teor da informação. Programadores, analistas de sistema, analistas de marketing passam o tempo todo buscando formas de atrair os navegantes para assuntos de interesse comercial, político, comportamental, etc. O que essas figuras usam como estratégia? Os elementos criados entre servidor e navegador.
Assim, ao visitar um site de propagandas de escovas de dentes, o navegador informa ao servidor sobre seu interesse em escovas de dentes. O servidor guarda essa informação de interesse de um visitante em um banco de dados associando essa informação a sua sessionID. Agora imagine se esse servidor for o google. Ou seu navegador for o chrome que pertence ao google. Ou seu celular estiver com o sistema operacional android que pertence ao google. Em qualquer um desses casos, a informação está guardada sem sua identificação. Até que você vai olhar seu e-mail e digita seu email e senha para entrar no gmail que pertence ao google. Nesse momento, sua sessionID é associada ao seu e-mail e vinculada no mesmo banco de dados com seu interesse em escova de dentes.
Agora, você saiu do site de propagandas de escovas de dentes e vai ler suas notícias no portal de sua preferência e as propagandas são de escovas de dentes.
Os sites funcionam com páginas formadas por partes de informação. Alguns desses blocos de dados não estão no mesmo servidor. Regiões inteiras de uma página podem está em um servidor e outras regiões em outros. Assim, você está lendo suas notícias e do nada aparece uma imagem com um texto: Continua depois da publicidade. Esse bloco da publicidade geralmente é fornecido por uma empresa de adsense como o google. Com esse bloco de adsense, o google pega sua sessionID e associa o site que você está visitando, o conteúdo que você está lendo, o vídeo que você assiste no youtube que pertence ao google.
Agora, você compra um google home que é um assistente por voz. Então, o google agora escuta o que você fala. No seu celular android também temos um assistente do google que lhe escuta e responde às suas solicitações.
E assim o google armazena suas informações, suas preferências, os lugares por onde você andou através do seu celular.
Não importa se você pede uma informação ou se o google ficou calado. Ele escuta e guarda a informação. E vincula tudo no banco de dados junto com aquela session. Com o tempo, o google sabe mais sobre você do que você mesmo pode lembrar.