Saltar al contenido principal

Sesións

Unha sesión é un mecanismo que permite ao servidor manter información sobre un usuario ao longo de varias peticións HTTP, malia que HTTP sexa un protocolo sen estado.

A sesión garda datos como:

  • Se o usuario está autenticado (logueado)
  • Quen é
  • Que ten no carriño da compra
  • Preferencias temporais, etc.

A gran diferencia entre cookies e sesións e que a a información nas cookies gárdanse no cliente e en cambio nas sesións almacénanse no servidor. Isto non quita que as sesións necesiten as cookies.

Relación entre sesións e cookies

As cookies son usadas para identificar a sesión do usuario. Vexamos como funciona isto:

  1. O servidor crea unha sesión cando o usuario entra por primeira vez (por exemplo, logo de facer login).

  2. Gárdase esa sesión nunha base de datos ou na memoria do servidor, asociada a un identificador único (por exemplo: sessid=abc123).

  3. Ese identificador de sesión envíase ao cliente a través dunha cookie:

    Set-Cookie: PHPSESSID=abc123; Path=/; HttpOnly
  4. En cada petición posterior, o navegador envía automaticamente esa cookie:

    Cookie: PHPSESSID=abc123
  5. O servidor recibe o ID, consulta os datos da sesión asociada, e recupera toda a información sobre o usuario.

Por que utilizar sesións no lugar de cookies

Problema coas cookiesSolución coas sesións
As cookies viaxan en cada petición o que provoca lentitude se a información que se almacena é moi grande.A sesión garda os datos no servidor.
Os datos da cookie poden ser manipulados no cliente.Os datos da sesión están protexidos no servidor.
Limite de tamaño en cookies (~4KB).As sesións poden gardar moita máis información.