PHP – Sessions e Cookies
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”.
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).
Quando visitamos pela primeira vez o cookies.php, temos a seguinte resposta:
HTTP/1.1 200 OK
Date: Wed, 04 Apr 2012 00:35:33 GMT
Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2 PHP/5.3.8
X-Powered-By: PHP/5.3.8
Set-Cookie: cookie_teste=Algum+valor...; expires=Wed, 04-Apr-2012 01:35:33 GMT
Content-Type: text/html
Através da função setcookie do PHP, estamos enviando um item chamado Set-Cookie no cabeçalho HTTP da resposta. É através deste que o navegador entende que deve armazenar o valor “Algum valor…”, atendendo pelo identificador “cookie_teste”, e que esta informação expira em 1 hora (verifique a data da