Noticias

Funciones de Cookies

Las Cookies son archivos pequeños que se graban desde un web site en las máquinas de los clientes. El objetivo es proveer funciones que permitan leer y grabar cookies desde los Web Panels generados por GeneXus.

Introducción
El objetivo es proveer funciones que permitan leer y grabar cookies desde los Web Panels generados por GeneXus.

¿Que son las cookies?
Las Cookies son archivos pequeños que se graban desde un web site en las máquinas de los clientes. Los programas CGI o cualquier aplicación que corre en un servidor, puede leer o grabar las cookies en el cliente. El uso más común de las cookies es la identificación de usuarios. Cuando un usuario se registra en un web site (Portal o E-Store), el sitio graba una cookie en la máquina del cliente con la identificación del cliente. De este modo la próxima vez que el cliente visite este sitio, intenta leer la cookie y si la misma existe usa el valor de la cookie para identificar el usuario y recuperar sus preferencias desde una base de datos.
También existen otros usos de las cookies, como rotación de contenido (especialmente avisos), mantener estado de una aplicación, etc. Incluso se pueden usar como método de almacenar el "carrito de compras" de modo que la información del mismo quede en la máquina cliente y se mantiene entre conexiones.
Como decíamos, generalmente se usa una cookie para identificar el usuario (en algunos casos, una para la sesión, en otros para el usuario), aunque se podrían poner todos los valores de las preferencias en cookies. Lo ideal es tener una clave que viaje y con esta clave leer la información del usuario. De este modo la información del usuario no viaja hacia el cliente , ni está en la URL ( ej. tarjetas de crédito , nombre, dirección ) simplemente permanece en el servidor.
Hay que tener en cuenta que existe un límite en cuanto a la cantidad de cookies que el cliente puede aceptar. El máximo son 300 cookies en total
por cliente (para todos los servidores juntos por cada browser/cliente) y 20 cookies por server o dominio lo cual quiere decir que si una aplicación graba más de 20 cookies las últimas van a borrar los valores de las primeras.
Además existe un límite de tamaño de 4K por cookie , si una cookie supera ese límite es truncada.
El usuario puede preferir no grabar la cookie permanentemente (por ej. si está accediendo desde una máquina pública como podría ser un cybercafe) o incluso puede deshabilitar el uso de cookies, por lo cual esta no debe ser la única manera de identificar al usuario, sino que se debe poder usar un método alternativo en caso de que el browser no soporte o no tenga habilitado el manejo de cookies.
Otra particularidad es que el lugar donde se almacenan las cookies (al menos en Windows) dependen del browser, por lo que si un usuario tiene más de un browser, cada uno tendrá un conjunto independiente de cookies.
El ciclo de vida de una cookie es como sigue:

1. El usuario se conecta a un servidor que por alguna razón quiere grabar una cookie.
2. En la respuesta (HTML Headers), se indica el nombre y valor de la cookie a grabar, así como otros valores (el más relevante es la fecha de expiración).
3. El browser recibe la respuesta y, si el valor de la fecha de expiración es en el futuro, la graba; en caso contrario busca una con ese nombre y la borra.
4. Cada vez que el usuario se conecte a una URL de este dominio el browser enviará al server las cookies que se hayan grabado desde el dominio y no hayan expirado.
5. Una vez pasada la fecha de expiración, las cookies se borran.

Para obtener más información técnica sobre cookies y su uso: http://www.cookiecentral.com

En la próxima edición explicaremos las funciones con las que se cuenta en GeneXus para trabajar con Cookies.