Aula 11 - Entendendo e utilizando sessão

1-               Introdução


Nessa aula você irá começar a compreender uma forma de persistência de dados muito utilizada para armazenar dados temporariamente. Essa forma de persistência é chamada de sessão e a maioria das linguagens de programação implementam essa funcionalidade.
O primeiro conceito importante a ser trabalhado aqui são os Cookies. A maioria das pessoas já ouviu falar nos cookies, porém, não sabem definir direito por quê eles existem.
Uma definição simples e rápida para os conceitos de cookie e sessão é:

Muitos apenas definem como “persistências temporárias” feitas no lado do usuário, e sessões são persistências dependentes de cookies, mas realizadas no lado do servidor.

Para que servem Cookies e Sessões?


O protocolo HTTP é Stateless, ou seja, ele não mantém um estado/conexão. Toda a interação que o seu cliente fizer com um servidor web acarretará em uma nova requisição e resposta.
As requisições são independentes e possuem um tempo de vida (conexão, envio de mensagem, resposta, encerramento da conexão). O servidor web não é capaz de identificar se duas requisições vieram de um mesmo navegador, e o mesmo não faz nenhum gerenciamento em memória para que mensagens sejam compartilhadas entre requisições. É para suprir esta necessidade que entram os cookies e sessões.

Cookies


Através de cookies o servidor web é capaz de trocar informações de estado com o navegador do usuário. Desse modo, somos capazes de adicionar produtos a um carrinho de compras, sem perder estas informações ao mudar de página, sair do website ou até mesmo fechar o navegador.
Tecnicamente falando, um cookie é uma pequena quantidade de informação persistida temporariamente pelo navegador. Os navegadores normalmente limitam o tamanho dos cookies em até 4KB, e apagam cookies com a data de “validade vencida”.

Exemplo de Cookie usando PHP


Para entender como essa troca de informação é feita, vamos criar um cookie com o PHP:

<?php
    // cookies.php

    if (isset($_COOKIE['cookie_teste'])) {
        echo 'Você JÁ passou por aqui!';
    } else {
        echo 'Você NUNCA passou por aqui.';
        setcookie('cookie_teste', 'Algum valor...', time() + 3600);
    }
?>

O código acima verifica se o cookie atendendo pelo identificador cookie_teste já existe, caso não exista, cria um cookie com identificador cookie_teste, valor Algum valor... e com 1 hora de vida (a hora atual mais 3600 segundos).
Esse cookie é persistido pelo navegador e é possível de ser acessado nas configurações de request:



Sessões

As sessões têm um princípio similar aos cookies, só que o armazenamento do estado é feito pelo servidor web, e não pelo navegador. Por exemplo, quando construímos uma aplicação que necessita de autenticação, no momento em que o usuário efetuar o login, podemos até permitir que algumas informações sejam armazenadas em um cookie, mas dados mais “sensíveis”, como usuário e e-mail, são mais interessantes de serem guardadas em sessões. Isto, pois não é seguro que esse tipo de informação fique “viajando” pela web.

Mas se o HTTP é stateless, e o servidor web não tem como identificar que a requisição anterior veio do meu browser, como é que ele sabe que as informações que eu guardei em sessão são de fato minhas? Simples… através de cookies!
Quando iniciamos uma sessão, é enviado um cookie para o navegador, com um valor único que corresponde a sessão aberta no servidor web.

Veja um exemplo de como usar Sessões em PHP:
<?php
    // sessions.php
    session_start();
    if (isset($_SESSION['usuario'])) {
        echo "Bem vindo {$_SESSION['usuario']}!";
    } else {
        echo 'Você NUNCA passou por aqui.';
        $_SESSION['usuario'] = 'João';
    }
?>
Aula 11 - Entendendo e utilizando sessão Aula 11 - Entendendo e utilizando sessão Reviewed by Vinicius dos Santos on 04:38:00 Rating: 5

Nenhum comentário

Escreva aí sua opinião!