DEV Community

Guilherme
Guilherme

Posted on

O que são Sessions na Web?

O Google Analytics é um serviço que utiliza Sessions largamente para fazer analises sobre usuários da internet, sim isso mesmo! o Google monitora as atividades de pessoas como eu e você : ): bem em uma de suas documentações ele descreveu o conceito de Session e eu trago aqui para iniciarmos este estudo:

"Uma sessão é um grupo de interações do usuário com o seu site que ocorrem em um determinado período."

Obs: Session = Sessão, documento original a baixo…

Google Analytics

Múltiplas Sessions:

Podem haver + de 1 Session aberta ao mesmo tempo para um mesmo usuário, como no exemplo do Google Analytics acima, para cada sessão aberta há um cookie correspondente no navegador para guardar o ID.

Não confunda Sessions com Cookies:

Cookies são persistências temporais de informações guardadas no lado do navegador, já as Sessions são guardadas no lado do servidor e são dependentes de Cookies.

Uma sessão é normalmente com monitoração de estado:

Significa que o servidor precisa manter as informações do estado atual e salvar as informações sobre o histórico da sessão para poder se comunicar, e isso é feito através de um cookie HTTP que identifica o estado com um token de ID único. O motivo para usar tokens de sessão é que o cliente só precisa lidar com o identificador, todos os dados da sessão são armazenados no servidor (geralmente em um banco de dados , ao qual o cliente não tem acesso direto).

Exemplos de utilidades das Sessions:

  1. Exigir que o usuário faça login novamente se a sessão expirou (ou seja, um certo limite de tempo passou sem atividade do usuário). Bem comum em sites de banco, como a Caixa e Banco do Brasil, por questões de segurança.

  2. Numa loja virtual, o foco é vender. Visualize o cenário: Um usuário coloca coisas no carrinho e por algum motivo fechou o browser. Quando ele voltar nesse site terá que refazer toda a compra, buscar os produtos e colocá-los no carrinho. Nesse processo o usuário pode ficar impaciente e desistir de comprar. Se o site tivesse recurso de salvar o carrinho e identificar o cliente mesmo que não esteja logado, teria maior chance de concretizar a venda sem aborrecê-lo. Este recurso pode ser implementado com a Session.

  3. Lembrar se você prefere camisetas ou meias.

  4. Armazenar informações no servidor entre as requisições e respostas HTTP (a cada vez que você atualiza o navegador).

Stateless -> Stateful:

Preste atenção ao exemplo 4 acima… Sessions e Cookies fazem o HTTP ser Stateful: O HTTP em si é Stateless ou seja, não exige que o servidor mantenha informações ou estados sobre cada usuário entre as requisições e respostas. Bem para contornar isso há alguns métodos, um deles é através de parâmetros de URL, por exemplo: https://www.youtube.com/results?search_query=programdador+alternativo neste caso search_query recebe um valor = programdador+alternativo que a propósito é o meu canal no YouTube : ) outra forma é utilizar um Cookie sem a Session porém perceba que nestes 2 casos as informações estariam expostas ao usuário, sujeitas a leitura e edição portanto se deseja proteger essas informações seria mais seguro utilizar Session pois esta fica armazenada no servidor.

Top comments (0)