Cookies ¿Que son las cookies?

Anuncio
Cookies
1
¿Que son las cookies?
¿Que son las cookies?
Una cookie es una variable almacenada por el servidor en la computadora del cliente. Cada vez que la misma computadora solicita una página con un browser, junto con la solicitud el browser envía la cookie al servidor, Con
el browser envía la cookie al servidor, Con JavaScript se pueden crear cookies y leer su valor. 2
Cookies
LLos datos se almacenan en un archivo de texto en forma de pares:
d t
l
hi d t t
f
d
Name=value.
Si son varios pares se encuentran separados mediante punto y coma ;
p
p
p
y
;
Existen especificaciones para su implementación : los browsers deben poder almacenar al menos 300 cookies en total y al menos 20 cookies por servidor ó dominio ocupando hasta 4KB cada una
dominio ocupando hasta 4KB cada una.
Los usuarios pueden bloquear las cookies ó incluso destruirlas por lo que no se puede depender ciegamente de este mecanismo.
3
Atributos
• Por default las cookies se destruyen cuando se cierra la ventana del browser a menos que se especifique una fecha de caducidad mediante el atributo expires.
ib
i
o Si se especifica una fecha futura la cookie persiste hasta esa fecha
o Para destruir una cookie se especifica una fecha pasada.
• Por default las cookies solo pueden ser leidas por la página web que las creó a menos q e se especifiq e alg no de los sig ientes parámetros
creó a menos que se especifique alguno de los siguientes parámetros:
o path – para permitir que mas de una página del mismo sitio pueda acceder a las cookies.
o domain – para permitir el acceso a varios servidores de un mismo dominio.
4
¿Como se envían al browser?
¿Como se envían al browser?
Cuando una cookie se envía del servidor hacia el browser, se agrega una línea Cuando
una cookie se envía del servidor hacia el browser se agrega una línea
adicional en el header HTTP. Por ejemplo:
Content-type: text/html
Set-Cookie: foo=bar; path=/; expires Mon, 09-Dec-2008
13:46:00 GMT
Esta línea en el header provoca que el browser almacene una cookie llamada foo. El valor de foo es bar.
El path / representa el URL desde el que se puede usar la cookie. el slash significa que es válido para todo el sitio y tiene una fecha de caducidad de Dic 9, 2008 a la 1:46 pm GMT.
,
p
5
¿Cómo se envían al servidor?
¿Cómo se envían al servidor?
Cuando la cookie se envía del browser hacia el servidor no se envían todos los campos:
Content-type: text/html
Cookie: foo=bar
Con esta línea se informa al servidor que existe una cookie llamada foo cuyo valor es bar.
Múltiples cookies
cookieName4=value; cookieName3=value; cookieName2=value; cookieName1=value 6
JavaScript: Creación de Cookies
JavaScript: Creación de Cookies
var expireDate = new Date();
i D
D ()
expireDate.setMonth(expireDate.getMonth()+6);
…
document.cookie = “foo=" + “bar”+ ";expires=" + expireDate.toGMTString();
Con esto se crea una cookie llamada foo cuyo valor es bar. Con
esto se crea una cookie llamada foo cuyo valor es bar
Con caducidad de 6 meses.
7
Lectura de cookies
Lectura de cookies
LLa lectura mas simple es cuando sabemos que el l
i l
d
b
l
browser solo almacena una cookie:
foo=document.cookie.split("=")[1];
8
Método Split()
Método Split()
El método split permite dividir un “string” en componentes especificando el separador El resultado se guarda en un arreglo
especificando el separador. El resultado se guarda en un arreglo.
EJEMPLO
var fecha= '24/02/2009'; var elem = fecha.split(
= fecha split('/');
/ ); dia= elem[0]; //24
mes= elem[1]; //02
[ ]; //
año= elem[2]; //2009
9
Lectura de múltiples cookies
Lectura de múltiples cookies
var thisCookie = document.cookie.split("; "); S
Separa las diferentes cookies
l dif
t
ki
for (var i=0; i<thisCookie.length; i++) { outMsg += "Cookie name is '" + thisCookie[i].split("=")[0]; outMsg += "', and the value is '" + thisCookie[i].split("=")[1] + "'<br />";
}
thisCookie[i].split("=")[0];
thisCookie[i].split("=")[1];
nombre de la cookie
valor de la cookie
valor de la cookie
10
JavaScript: Borrar Cookies
JavaScript: Borrar Cookies
var expireDate = new Date();
expireDate.setDate(expireDate.getDate()‐1);
…
document.cookie = “foo="+ ";expires=" + expireDate.toGMTString();
Con esto se borra una cookie llamada foo
11
Descargar