DEV Community

Cover image for Cookies vs Sessions
Nahuel Segovia
Nahuel Segovia

Posted on

2 1

Cookies vs Sessions

Para poder adentrarnos en el tema de Cookies y Sessions es necesario saber que estas “herramientas” se crearon porque el protocolo HTTP es Stateless, lo que significa que no maneja estados almacenados entre cliente y servidor. Ahora, la diferencia entre Cookies y Sessions:

  • Cookies: Almacenan información en el navegador, es decir del lado del cliente.

  • Sessions: Almacenan información del lado del servidor, sin embargo las sesiones proporcionan una Cookie para indicarle al servidor que sesión estamos utilizando.

Explicando como funciona una Cookie

• El servidor es quien define cuando se almacena la información, esto es proporcionado al cliente mediante el header llamado Set-Cookie.

• Para que la Cookie se mantenga vigente se tiene que enviar en cada una de las solicitudes que se realizan al servidor.

Ahora, ¿Cómo y donde se crea una Cookie? Tenemos dos formas de hacerlo, se puede hacer tanto con Javascript, o simplemente haciendo una petición hacia el servidor.

Vamos a ver la segunda opción:

Alt Text

  1. El cliente envía una petición al servidor.

  2. El servidor responde con una petición HTTP con el header Set-Cookie y el valor de la Cookie.

  3. El cliente ahora puede realizar peticiones hacia el servidor utilizando la misma Cookie, por lo que el servidor va a reconocerlo en cada una de las peticiones.

Una Cookie cuenta con argumentos/parámetros que vamos a conocer a continuación:

• Domain:
◦ Define el host en donde es válida la Cookie, en el caso de que no sea especificada, el navegador lo definirá como el host actual

◦ El “.” nos sirve como un comodín para hacerle saber que la Cookie va a ser usada en todos los subdominios de este dominio, como mipagina.com y blog.mipagina.com o www.mipagina.com

• Expires: Nos define un tiempo de duración de la Cookie creada

• Path: Es el lugar desde donde puede ser usada/enviada la Cookie, básicamente sería el contexto en donde puede ser usada, tomemos de ejemplo el siguiente: path=/videos

◦ Podrá ser usada en todos los lugares donde el path empiece con /videos, /videos/usuario1, etc.

• Content: Es la lista de valores que son almacenados en la Cookie, un ejemplo podría ser usuario=”escritor”; logged_in=”1”

• HTTP Only Flag: Define si la Cookie puede ser enviada a través del protocolo HTTP, esto por ejemplo nos condicionaría al tratar de leer la Cookie a través de Javacript.

• Secure Flag: Solo se envía la Cookie a través de SSL, es decir HTTPS.

Explicando como funciona una Session

En primer lugar y como dije arriba, las sesiones necesitan de una Cookie para poder funcionar, y la diferencia también explicada arriba es que la sesión se almacena del lado del servidor, y puede ser guardad en memoria, en archivos o en una base de datos.

Esto puede ser creado a través del Backend, en Node puede ser creado con el módulo express-session, y en PHP lo más común es utilizar la variable global $_SESSION.

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up