La Web está diseñada para que cada solicitud de un navegador web a un sitio web sea independiente. De forma predeterminada, la Web no tiene “memoria”. Cada vez que abres una página web, el sitio que visitas no puede recordar la información de tu última sesión. Esto ayuda a que la Web sea eficiente y simple, ya que no se necesita un mecanismo para hacer un seguimiento de las solicitudes y respuestas.
Sin embargo, la naturaleza olvidadiza de la Web también presenta un problema. Por ejemplo, ¿cómo puede funcionar un carrito de compras si el sitio web en el que te encuentras no puede recordar lo que acabas de agregar?
Las cookies se inventaron para resolver ese problema.
Las cookies les proporcionan memoria a los sitios web
Cuando visitas una página en un sitio web, tu navegador web realiza solicitudes al servidor del sitio web para obtener los recursos incluidos en la página, como HTML, CSS, JavaScript o imágenes.
Los navegadores web y los sitios web interactúan siguiendo el protocolo HTTP. Es un conjunto estandarizado de reglas para la comunicación.
En respuesta a una solicitud HTTP de un recurso, el servidor del sitio web puede incluir información adicional llamada encabezados junto con el recurso en sí. Un encabezado Set-Cookie
incluido con una respuesta HTTP le indica al navegador que almacene un texto: un nombre y un valor. Esto se conoce como galleta. Por ejemplo, el encabezado de respuesta Set-Cookie:cat=tabby
le indica al navegador que almacene una cookie con el nombre "cat" y el valor "tabby".
Una vez que se configure esa cookie, las solicitudes posteriores de tu navegador al sitio web incluirán el encabezado Cookie:cat=tabby
. El servidor del sitio web puede acceder a la cookie desde el encabezado de la solicitud y usar el valor.
Cómo funcionan las cookies: paso a paso
Imagina que visitas el sitio web cats.example
. El sitio quiere mostrarte una imagen aleatoria de un gato y mantener un registro del gato que se te mostró.
En los siguientes pasos, se explica cómo se puede hacer con cookies.
1. El navegador solicita un archivo
Visitas la página principal del sitio web cats.example
.
Tu navegador solicita los archivos de la página, incluido cat.jpg
de cats.example
.
2. El servidor del sitio web responde
El servidor en cats.example
responde con el archivo de imagen cat.jpg
.
Con la respuesta, el servidor incluye un encabezado: Set-Cookie:cat=tabby
.
3. El navegador recibe una respuesta
El navegador recibe el archivo de imagen y procesa el encabezado Set-Cookie:cat=tabby
que se incluye con él.
Se almacena una cookie: nombre cat
, valor tabby
.
4. El navegador realiza solicitudes adicionales
A partir de ahora, tu navegador incluirá el encabezado Cookie:cat=tabby
con solicitudes a cats.example
.
Cuando el servidor web cats.example
recibe una solicitud, puede procesar la cookie y hacer lo que quiera con ese valor, como asegurarse de no volver a enviarte una imagen del mismo gato atigrado.
Este es todo el proceso de las cookies:
- Tu navegador realiza una solicitud a un sitio web para obtener un archivo.
- El servidor del sitio web puede incluir un encabezado como
Set-Cookie:cat=tabby
junto con el archivo que envía en respuesta a la solicitud. - Cuando el navegador recibe la respuesta, almacena la cookie.
- Con cada solicitud posterior, el navegador envía la cookie al servidor en un encabezado
Cookie:cat=tabby
.
Cómo acceder a las cookies con JavaScript
En el ejemplo anterior, se usa el encabezado de respuesta Set-Cookie
para establecer una cookie.
Las cookies también se pueden crear con JavaScript mediante el método document.cookie
.
Prueba la demostración: javascript-cookie.glitch.me/.
Más información: Documento: propiedad de cookie.
¿Por qué necesitamos las cookies?
En 1994, el ingeniero Lou Montulli trabajaba en la empresa de software Netscape, que luego creó el navegador web más popular de mediados de la década de 1990.
Mientras tanto, una corporación de telecomunicaciones, MCI, intentaba crear una función de carrito de compras para una de las primeras tiendas en línea del mundo. MCI se comunicó con Montulli para explicarle su problema. En respuesta, Montulli agregó una función a HTTP que permitía que un sitio almacenara una pequeña cantidad de texto en el navegador web de un usuario, un nombre y un valor: algo como cart-id=123
. La llamó “cookie”, ya que en ese momento los programadores usaban la palabra “cookie mágica” para referirse a una pequeña cantidad de información adicional incluida en la comunicación de datos.
Lou completó su trabajo con cookies HTTP en menos de una semana. Lo que no sabía era que las cookies serían fundamentales para la publicidad, el acceso, los pagos, la detección de fraudes y otros servicios web esenciales. Las cookies son una tecnología muy simple que tiene efectos secundarios de gran alcance.
Usos de las cookies
Las cookies permiten que el navegador almacene una pequeña cantidad de información sobre el usuario para “recordar” algo en varias solicitudes. Las cookies tienen varios usos:
- Administración de sesiones
Permite que un sitio web reconozca a un usuario, por ejemplo, para mantener un estado de acceso en diferentes páginas. - Personalización
Almacena las preferencias del usuario, como el idioma, el tema o los elementos vistos recientemente, para personalizar la experiencia del sitio web. - Seguimiento
Históricamente, las cookies se han usado para hacer un seguimiento del comportamiento de los usuarios en distintos sitios web, para la publicidad segmentada y otros casos de uso.
En cambio, las cookies suelen usarse para almacenar y comunicar identificadores que el servidor procesa. Por ejemplo, un encabezado con una solicitud a un servicio de análisis web podría incluir una cookie como esta:
Cookie: _analytics=ANALYTICS1.2.34567890.123456789
El servidor de estadísticas que recibe la solicitud puede procesar el identificador junto con otra información sobre la página.