domingo, 21 de noviembre de 2010

Cookie




Cookie

Es un fragmento de información que se almacena en el disco duro del visitante de una página web a través de su navegador, a petición del servidor de la página. Esta información puede ser luego recuperada por el servidor en posteriores visitas. En ocasiones también se le llama "huella". Las inventó Lou Montulli, un antiguo empleado de Netscape Communications.
Al ser el protocolo HTTP incapaz de mantener información por sí mismo, para que se pueda conservar información entre una página vista y otra (como login de usuario, preferencias de colores, etc), ésta debe ser almacenada, ya sea en la URL de la página, en el propio servidor, o en una cookie en el ordenador del visitante.

De esta forma, los usos más frecuentes de las cookies son:

Llevar el control de usuarios: cuando un usuario introduce su nombre de usuario y contraseña, se almacena una cookie para que no tenga que estar introduciéndolas para cada página del servidor. Sin embargo una cookie no identifica a una persona, sino a una combinación de computador-navegador-usuario.

Conseguir información sobre los hábitos de navegación del usuario, e intentos de spyware, por parte de agencias de publicidad y otros. Esto puede causar problemas de privacidad y es una de las razones por la que las cookies tienen sus detractores.

Originalmente, sólo podían ser almacenadas por petición de un CGI desde el servidor, pero Netscape dio a su lenguaje Javascript la capacidad de introducirlas directamente desde el cliente, sin necesidad de CGIs. En un principio, debido a errores del navegador, esto dio algunos problemas de seguridad. Las cookies pueden ser borradas, aceptadas o bloqueadas según desee, para esto sólo debe configurar convenientemente el navegador web.

Bueno como la cookie es un nombre / valor asociados a un sitio web, que se guardan en el ordenador del visitante. Una vez colocada la cookie siempre que accedamos a la página ésta podrá leer la cookie y personalizarlos la experiencia. Los sitios web sólo pueden acceder a sus propias y cookies y no a las que hayan guardarlo otros, por lo que es cómodo para guardar información de tipo personal.

Veamos como funciona una cookie en PHP.



1º un navegador va a una página que tiene un script en php en el que hay una llamada la función setCookie()

2º El navegador recibe la página solicitada, con el encabezamiento HTTP setcookie que contiene el nombre (por ejemplo: micookie) y el valor que tiene la cookie.

3º Al recibir este encabezamiento, el navegador crea y guarda el valor especificado como una cookie con el nombre mycookie

4º A partir de ahí todas las peticiones de páginas en ese Site contendrán en el encabezado un HTTP cookie que enviará al servidor la cookie como nombre=valor (micookie=valor)

5º Al recibir una página con una cookie PHP crea una variable con el nombre de la cookie $micookie y con su valor.

En otras palabras, la función setcookie() te permite establecer una variable que estará automáticamente presente en todas las páginas que solicite un navgador. Vamos a ver cómo funciona.

setCookie(nombre [,valor [, expira [, path [, dominio [, seguro ])
Esta función añade un encabezamiento http a la página por lo que hay que llamarla antes de que aparezca cualquier contenido. Si haces la llamada a la cookie después se producirá un mensaje de error.


El único parámetro obligatorio de las cookies es el nombre, que especifica el nombre de la cookie. Llamar a una cookie que sólo tenga el parámetro nombre de hecho borrará la cookie que haya guardada si es que hay una. El parámetro Valor te permite crear una nueva cookie o modificar el valor que haya guardado.

Por defecto las cookies siguen guardadas en el navegador (y por lo tanto se mandarán junto con las solicitudes de páginas al servidor) hasta que el usuario cierre el navegador. Para que la cookie persista una vez que el usuario cierre el navegador hay que establecer una fecha de expiración utilizando la función time()

La función time() devuelve el número de segundos desde el 1 de Enero de 1970. Supongamos que queremos crear una cookie que dure un año:

1.- Obtenemos el número de segundos transcurridos desde 1970.
2.- Calculamos cuánto es un año en segundos. 1 día = 80.400 segundos (60 segundos * 60 minutos * 24 horas)
3.- Añadimos el número de segundos desde el 1 de enero de 1970 al número de segundos que va a durar la cookie.

En la siguiente imagen se observa como son las peticiones de las cookies.


Fuentes

http://es.wikipedia.org/wiki/Cookie
http://www.wikilearning.com/curso_gratis/php_y_mysql_para_gentes_de_letras-cookies/10115-6

1 comentario: