Las cookies se utilizan, por ejemplo, para mantener la información de la sesión entre diferentes páginas. Por ejemplo, el registro de un usuario termina después de completar muchas páginas. Pero cómo mantener la información de sesión de los usuarios en todas las páginas web. En muchas situaciones, el uso de cookies es el método más eficiente para recordar y rastrear las preferencias, compras, comisiones y otra información necesaria para mejorar la experiencia del visitante o las estadísticas del sitio.
El procedimiento de las cookies
El servidor envía algunos datos al navegador del visitante en forma de cookie. El navegador puede aceptar la cookie. Si lo hace, se almacena como un registro de texto plano en el disco duro del visitante. Ahora, cuando el visitante llega a otra página de su sitio, el navegador envía la misma cookie al servidor para su recuperación. Una vez recuperado, su servidor sabe/se acuerda de lo que estaba almacenado anteriormente.
Las cookies son un registro de datos de texto plano de 5 campos de longitud variable:
-
Expires − La fecha en que la cookie expirará. Si está en blanco, la cookie expirará cuando el visitante abandone el navegador.
-
Domain − El nombre de dominio de su sitio.
-
Path − La ruta al directorio o página web que estableció la cookie. Esto puede estar en blanco si desea recuperar la cookie de cualquier directorio o página.
-
Secure − Si este campo contiene la palabra "seguro", entonces la cookie sólo puede ser recuperada con un servidor seguro. Si este campo está vacío, no existe tal restricción.
-
Name=Value − Las cookies se establecen y recuperan en forma de pares clave-valor.
Las cookies fueron diseñadas originalmente para la programación CGI. Los datos contenidos en una cookie se transmiten automáticamente entre el navegador y el servidor web, de modo que los scripts CGI del servidor pueden leer y escribir los valores de las cookies que se almacenan en el cliente.
JavaScript también puede manipular las cookies utilizando la propiedad cookie del objeto Document.
Almacenamiento de cookies
La forma más sencilla de crear una cookie es asignar un valor de cadena al objeto document.cookie, que tiene este aspecto:
document.cookie = "key1 = value1;key2 = value2;expires = date";
Aquí el atributo expires es opcional. Si usted proporciona este atributo con una fecha u hora válida, entonces la cookie expirará en una fecha u hora determinada y, a partir de entonces, el valor de las cookies no será accesible.
Nota - Los valores de las cookies pueden no incluir punto y coma, ni espacio en blanco. Por esta razón, es posible que desee utilizar la función JavaScript escape() para codificar el valor antes de almacenarlo en la cookie. Si hace esto, también tendrá que utilizar la correspondiente función unescape() cuando lea el valor de la cookie.
Lectura de Cookies
Una cookie puede ser leída tan simple como escribir una, porque el valor del objeto document.cookie es la cookie. Así que puedes usar esta cadena siempre que quieras acceder a la cookie. La cadena document.cookie mantendrá una lista de pares name=value separados por punto y coma, donde el "name" es el nombre de una cookie y el valor es su valor de cadena.
Puede utilizar la función split() de strings para dividir una cadena en claves y valores de la siguiente manera:
<html>
<head>
<script type = "text/javascript">
<!--
function ReadCookie() {
var allcookies = document.cookie;
document.write ("All Cookies : " + allcookies );
// Get all the cookies pairs in an array
cookiearray = allcookies.split(';');
// Now take key value pair out of this array
for(var i=0; i<cookiearray.length; i++) {
name = cookiearray[i].split('=')[0];
value = cookiearray[i].split('=')[1];
document.write ("Key is : " + name + " and Value is : " + value);
}
}
//-->
</script>
</head>
<body>
<form name = "myform" action = "">
<p> click the following button and see the result:</p>
<input type = "button" value = "Get Cookie" onclick = "ReadCookie()"/>
</form>
</body>
</html>
Configuración de la fecha de caducidad de las cookies
Usted puede extender la vida de una cookie más allá de la sesión actual del navegador estableciendo una fecha de caducidad y guardando la fecha de caducidad dentro de la cookie. Esto se puede hacer estableciendo el atributo 'expires' en una fecha y hora.
Este es un ejemplo de cómo extender la fecha de caducidad de una cookie en 1 mes:
<html>
<head>
<script type = "text/javascript">
<!--
function WriteCookie() {
var now = new Date();
now.setMonth( now.getMonth() + 1 );
cookievalue = escape(document.myform.customer.value) + ";"
document.cookie = "name=" + cookievalue;
document.cookie = "expires=" + now.toUTCString() + ";"
document.write ("Setting Cookies : " + "name=" + cookievalue );
}
//-->
</script>
</head>
<body>
<form name = "myform" action = "">
Enter name: <input type = "text" name = "customer"/>
<input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
</form>
</body>
</html>
Eliminación de una cookie
Algunas veces usted querrá borrar una cookie para que los intentos subsecuentes de leerla no devuelvan nada. Para ello, sólo tiene que fijar la fecha de caducidad en una hora anterior.
Así es como se borra una cookie fijando su fecha de caducidad en un mes por detrás de la fecha actual:
<html>
<head>
<script type = "text/javascript">
<!--
function WriteCookie() {
var now = new Date();
now.setMonth( now.getMonth() - 1 );
cookievalue = escape(document.myform.customer.value) + ";"
document.cookie = "name=" + cookievalue;
document.cookie = "expires=" + now.toUTCString() + ";"
document.write("Setting Cookies : " + "name=" + cookievalue );
}
//-->
</script>
</head>
<body>
<form name = "myform" action = "">
Enter name: <input type = "text" name = "customer"/>
<input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
</form>
</body>
</html>