¿Qué es un "cookie"?

Sabido es que el protocolo usado para pedir y recibir páginas en la Web

no es una conexión continua: requerimos algo del server, nos llega -o no-,

y la conexión con el server se corta. Esto determina que no hay manera

de salvar o conservar un determinado estado en la situación de

una conexión; si tan pronto como recibo la respuesta, oprimo un botón

ordenando algo, el estado anterior es olvidado. Hay varios métodos para

que esto pueda ser evitado. Uno consiste en un desarrollo específico de

Netscape llamado "cookies".

Un "cookie" es un pequeño trozo de información enviado por un server de

Web al browser de un usuario. Cuando Ud. visita un server que utiliza el

desarrollo denominado Magic Cookie (MC), éste instruye al browser de

su PC para crear un archivo Magic Cookie al que se lo suele nombrar como

cookies.txt o similar. En él, ingresa y queda una pequeña cantidad de

información. Por ejemplo, dicho bloque de datos podría contener un

identificador exclusivo para el usuario generado por el servidor, la fecha

y hora actual, la dirección IP del proveedor del servicio de acceso a

Internet mediante el cual la PC del usuario se conecta a la red, o cualquier

otro grupo de datos que se desee. El browser que ha recibido dicho

cookie lo reenviará al server cada vez que ingrese a la página HTML que

lo originó. Es importante tener en cuenta que el browser regresará el

cookie únicamente al server que lo seteó. Esto significa que el sitio que fijó

el cookie no tiene forma de conocer si su browser contiene otros cookies

y, en caso afirmativo, cuáles son los sites que los han seteado.

Repasemos, entonces: cuando un server envía un objeto HTTP a un

cliente, puede también mandar una pieza de información del estado de

circunstancias de la conexión (state), que el cliente almacenará. Incluída en

este "state object" hay una descripción del rango de las URL para las que

dicho estado es válido. Cualquier futuro requerimiento HTTP hecho por el

cliente que caiga en dicho rango incluira la devolución del texto del "state

object" al server. Ese "state object" es el llamado cookie.

En suma, Magic Cookie es un mecanismo usado por aplicaciones del server,

como scripts CGI, para almacenar y recuperar información del lado cliente

de la conexión de red. La adición de un "banco" de estados simple y

duradero del lado cliente, extiende significativamente las capacidades de las

aplicaciones cliente-servidor basadas en la WWW.

¿Pero... ¿para qué se usan?

A los cookies se les encuentra gran cantidad de aplicaciones: es posible,

tras preguntar el nombre de quien accede a una página, ingresarlo a un

cookie seteado en un directorio del browser del cliente. El día en que dicho

usuario retorne, la información será usada para saludarlo de manera

personalizada. O, a los visitantes que no deseen ver ninguna de los tan

comunes banners publicitaria, se les ofrece desde el site optar por tal

posibilidad, y de allí en adelante (hasta que el cookie expire) deja de verlas.

(En sitios de noticias tipo ZD Net, el archivo Magic Cookie deja saber al

server quién es Ud. en sus subsiguientes visitas, posibilitando recorrer

páginas armadas a su propio gusto de lector). Es posible respaldar un

sistema de ventas on-line usando cookies que conserven la información de

lo que quiere comprar una persona: si alguien invierte largo rato revisando

un amplio stock de Discos Compactos, y repentinamente tiene que dejar la

Red, puede recuperar esos datos aun cuando regrese semanas después.

Para ver una demostración de cómo actúa esto, eche un vistazo a la Kid's

Personal Info Page. Esta página permite a los chicos elegir sus propias áreas

de interés. Luego, la aplicación crea una página de información personali-

zada basada en su elección. Esto existe a nivel adultos, lo que se puede

observar en Personal Excite Page y Microsoft NetworkPage.

Una situación particular se plantea al aplicar Magic Cookie al seguimiento

de sitios de Web, ya que mucha gente considera invadida su privacidad si

el diseñador de un sitio quiere ver qué le interesa. El rastreo o seguimiento

del sitio puede mostrar al diseñador "puntos finales" o "callejones y salida",

lugares a los que la gente llega para desaparecer al no encontrar "el" link

interesante conque seguir enganchado. (Esta aplicación de los cookies

suele también dar cuentas más seguras de cuánta gente ha pasado por cada

una de las páginas de un sitio).

Claro que un mal uso de Magic Cookie conlleva sus trastornos. Un servicio

de spamming -compañia que envía avisos por E-mail a diestro y siniestro,

con acceso (desde adentro) a sitios de Web más o menos populares, puede

usar información obtenida originalmente por MC para reunir y organizar datos

de marketing o apuntar con propósitos publicitarios a usuarios específicos.

Acerca de la seguridad

Un cookie de HTTP no puede ser usado para conseguir datos de su disco

duro, ni para obtener su dirección de email o hurtar información delicada

sobre su persona. En realidad no pueden conseguir nada que no fuera

puesto allí por el server. Para lograr eso es preciso usar otras tecnologías.

Los servidores de Web que Ud. visite podrían aceptar aceptar su número

de tarjeta de crédito o passwords que envíe a ese sitio, y aunque pueden

poner esa información en el archivo cookie de su PC sin que Ud. se entere,

todo está diseñado para que ningún sitio pueda acceder a la información del

cookie depositado por otro sitio. Sus números de tarjeta de crédito y

passwords no están ni más ni menos seguros que si los teclea y los envía a

través de la Red.

Tampoco debe olvidarse que los cookies son sólo texto, por lo que no

pueden hacer nada por sí mismos. Nada que ver con Java o JS. Los

cookies son texto guardado en un archivo, y tienen limitaciones en cuanto

a su número y tamaño. No son un programa, como tampoco son programas

los archivos HTML. Grabar en disco un cookie no hará nada a su máquina.

Tampoco se puede contraer un virus de un cookie.

Para lo que un cookie de HTTP sí puede ser usado es, ya lo dijimos, para

rastrear su itinerario cuando Ud. navega por un sitio en particular. Si bien

este seguimiento de sitio puede ser hecho fácilmente sin usar cookies, su

uso hace al tracking de los datos un poco más consistente.

Si no desea que un servidor inserte cookies, puede lograrse un aviso previo:

por ejemplo, en la versión 3.0 de Netscape, seleccionar dentro del menu

Preferences la opción "Alert me if send a cookie".

Si un cookie permanece residiendo en su sistema, puede borrarlo cuando

quiera. Basta con ubicar el archivo mencionado, editarlo y eliminar varias

líneas o todo su contenido.

Si el archivo cookie es bloqueado (por ejemplo, protegiéndolo contra

escritura cambiando su atributo), al cerrar Netscape los datos no podrán

trasladarse desde la RAM hasta el archivo cookies.txt .

El no aceptar cookies no traerá inconvenientes en la mayoría de los sitios.

Sólo que, al no verlo, el servidor en cada oportunidad preguntará por él,

asumiendo que Ud. es un nuevo visitante. O puede que algunos sitios, en

especial, de compras, Ud. no sea habilitado para recorrerlo a menos que

acepte el cookie.

¿Con cuáles browsers actúan?

La mayoría de los usuarios de Internet utilizan Netscape, Mosaic o

Microsoft IE. Desde hace tiempo, estos tres browsers han estado dando

soporte al Cookie HTTP. Digital Equipment Corp tiene un script que

testeará su browser para ver si acepta un cookie. Quien no desee realizar

otras pruebas adicionales puede ver directamente los resultados.

¿Por qué ese nombre?

Nos cuenta Gerry Boyd que el término proviene del "monstruo de las

galletas" de Plaza Sésamo, y que ya en los mainframes de los 70 existía una

vieja versión que, en sistemas de tiempo compartido, colgaba la terminal de

un usuario exhibiendo el mensaje "Quiero una galleta" ("I want a cookie").

El usuario entonces estaba forzado a teclear una respuesta correcta, tal como

"galleta" ("cookie"), "aquí tienes tu galleta" ("here's a cookie") o expresiones

parecidas, hasta finalmente liberar su terminal.

Robert E. Maas relata lo siguiente: "Yo vi el COOKIE PUMA (y otros

animales) en el MIT-MC al final de los 70. En lugar de colgar la terminal

mandaba mensajes online, primero cada pocos minutos, luego más rápido y

más rápido, como si estuviera demandando sus galletas. Para terminar con

eso, Ud. debía enviar a PUMA un mensaje online conteniendo la palabra

COOKIE, -en algunos casos se tecleaba el comando de sistema: SEND

PUMA COOKIE- o simplemente podía esperar hasta que cumpliera su

ciclo, y eventualmente dijera que ahora no quería la galleta (tipo "las uvas

están verdes": como no obtiene la galleta, entonces hace como que no le

interesa).

¿Dónde encontrar cookies?

El Cookie Taste Test de Robert Brook ofrece un catálogo de páginas con

cookies.

El sitio de David Ray The Dive usa cookies, y un método para registrarse

gratuítamente que sólo utiliza su nombre y aparentemente efectúa algún

seguimiento sobre los usuarios de los últimos 30 días. Parece usar cookies

en estrecha dependencia con Javascripts para obtener botones de control

Adelante-Atrás y otras prestaciones. Su generador para tarjeta Oblique

estrategies es una buena combinación de cookies y Javascript.

El Netscape Store usa cookies para almacenar información en una suerte

de canasta comercial.

Especificaciones en los cookies

Un cookie se introduce al cliente mediante la inclusión del encabezamiento

Set-Cookie como parte de una respuesta de HTTP. Este mecanismo es

tíipicamente generado por un script CGI.

Hoy hablábamos de editar el archivo cookies.txt Este resumen nos servirá

para interpretar lo que encontremos. Si se desea un análisis más profundo

puede recurrirse a la publicación (en inglés) de Netscape Cookie Specs

Encabezamientio del Set-Cookie HTTP Response:

Set-Cookie: NAME=cualquiera; expires=FECHA; path=RUTA;

domain=NOMBRE_DE_DOMINIO; secure

NAME=el que fuere.

Este es el NOMBRE y contenido de sus datos. Ambos pueden tener

cualquier característica. Si, por ejemplo, usare el nombre 'Count'

y el contenido fuese un número que se incrementa cada vez que el

usuario carga la página, se vería como:

'Count=1'

expires=FECHA

Esta es la fecha en que expirará el cookie en relación a GMT. Si no

fuera seteada, entonces el desaparecería cuando el usuario termina su

sesión. Es necesario que respete la siguiente sintaxis:

'Wednesday, 09-Nov-1999 23:12:40 GMT'

path=RUTA

El atributo path, si se lo especifica, dirá al browswer retornar el

cookie solamente si el browser requiere por lo menos una URL de

ese path. Esto signifioca que si se setea un cookie con

'path=/monkey' el cookie sólo será retornado en caso de que el

browser requiera una URL en el path '/monkey' o más adelante,

como '/monkey/lovin'. Si no es especificado path, entonces el path

será automáticamente seteado al mismo path como el requerimiento

original. Si se quiere que un cookie sea enviado con cada

requerimiento a su server se indica la raíz de dicho server como path.

Ej.: 'path=/'

domain=NOMBRE_DE _DOMINIO

Dominio para el cual el cookie será retornado. Necesita contener por

lo menos 2 puntos. Ej.: '.andy.com' Esto significaría que

'www.andy.com' es tan válido como 'dookie.andy.com'

Ej.: 'domain=.illuminatus.com'

secure

Si el cookie está marcado secure sólo será transmitido estando sobre

un servidor secure. Si no tiene un servidor secure, no ponga nada.

Links útiles

* C|Net: The Truth About Cookies (Christopher Barr)

* PCWeek: Are Web-based Cookies a treat or a recipe for trouble?

Eamonn Sullivan )

* Tom Vrankar tiene una interesante página con ejemplos sobre Java

and Cookies e incluye una demostración de cómo actúan los cookies.

* Javascript Tip of the Week habla sobre Using a Browser's Cookie.

* Andy's Netscape HTTP Cookie Notes incluye algunas notas sobre

diferencias en el manejo de cookies entre Netscape y MS IE.

* Matt's Script Archive: HTTP Cookie Library

* Algunas páginas con ejemplos de Bill Dortch en Javascript :

*

* Code: http://www.hidaho.com/cookies/cookie.txt

* Demo: http://www.hidaho.com/cookies/cookie.html

* How to make cookies and shopping cart

* El Apache web server tiene un CookieLog module opcional para

trabajar con Cookies.

* Netoffice tiene una página listando algunos work with cookies que

hicieron para algunos de sus clientes.

MacPerl Q&A Dónde obtener MacPerl y punteros a otros recursos.

HTTP Cookie Spec Netscape describe el cookie HTTP.

Malcolm's Guide to Persistant Cookies Colección de links.

Matt's Script Archive Librería de Cookie HTTP para Perl.

Cookie Servers Avise aquí sobre los servers que seteen cookies.

Nice Cookie Article por Jasmin Consulting Corporation.

Jon Weiderspan's Macintosh WWW Development Guide

Web Developer Magazine

HTML Quick Reference Guide

RGB Hex Triplet Chart

Smiley's CGI/PERL page

Browsers, Viewers and HTML prep Resources

Tom Christiansens' Mox.Perl.COM

Hypertext Transfer Protocol--HTTP/1.0

The Perl FAQ Todo lo que ud. desea hacer, aquí está.

Cookie Monster Borra archivos cookie cuando ud. arranca su Mac.

 

© 2000 Javier de Lucas