Usuario:ManuelRomero/ProgramacionWeb/INAEM2021/Cookies

De WikiEducator
Saltar a: navegación, buscar




DWES TituloTema7 3.png

¿Qué es una Cookie?

  • Una cookie es un pequeño fragmento de datos que un servidor web envía al navegador del usuario para que éste lo almacene.
  • Sirve para guardar información relacionada con el cliente o con sus preferencias en relación con un sitio web.



Icon define.gif
Cookie

Una cookie es un pequeño fichero de datos que se almacena en el cliente (navegador) y que guarda información asociada a un determinado sitio web.



  • Una vez que el cliente almacena una cookie, cada vez que realice una solicitud al mismo servidor enviará automáticamente las cookies asociadas a ese sitio.


(Comment.gif: Un cliente es normalmente un navegador u otra aplicación capaz de realizar peticiones HTTP a un servidor. )



  • Las cookies permiten mantener cierta información entre distintas visitas a un sitio web, ayudando a gestionar el estado en aplicaciones web.
Icon present.gif
Tip:

Como las cookies se almacenan en el cliente, la legislación obliga a informar al usuario y obtener su consentimiento antes de almacenarlas en muchos casos.




Icon inter.gif
Legislación sobre las cookies
  • Es fundamental cumplir con la legislación vigente sobre el uso de cookies.
  • La legislación exige informar al usuario sobre su utilización y obtener su consentimiento explícito antes de almacenarlas (especialmente cookies no técnicas).
  • Cuando escribimos cookies estamos utilizando recursos del cliente (su navegador y almacenamiento local).
  • Conviene mantenerse actualizado sobre la normativa aplicable.

http://www.agpd.es/portalwebAGPD/canaldocumentacion/publicaciones/common/Guias/Guia_Cookies.pdf


  • En general no se debe abusar del uso de cookies.
  • Además, algunos usuarios pueden tenerlas deshabilitadas, lo que puede impedir que ciertas funcionalidades de la aplicación funcionen correctamente.
  • Por ello conviene que una aplicación web no dependa exclusivamente de cookies para su funcionamiento esencial.

Ciclo de vida de la cookie

Veamos el proceso detallado



Icon activity.jpg
Usuario solicita un recurso web
El usuario solicita un recurso en la web a un servidor concreto.

Solicitud.png





Icon activity.jpg
Servidor entrega el recurso
El servidor responde enviando el recurso solicitado.
Junto con la respuesta puede incluir instrucciones para crear cookies mediante la cabecera HTTP Set-Cookie.
El navegador almacenará esas cookies localmente.

Entrega solicitud 1.png

Las cookies se pueden visualizar en el navegador.


Icon activity.jpg
Localiza tus cookies

Busca las cookies en tu navegador y comprueba su nombre, valor y el dominio que las creó.


Cookies1.png
Cookies2.png
Cookies3.png







Icon activity.jpg
La cookie queda almacenada en el cliente
Si observamos las cookies del navegador veremos cómo el servidor ha escrito esa información.
Cada cookie queda asociada al dominio que la creó.

Cookie almacenada.png





Icon activity.jpg
Usuario solicita otro recurso
El usuario vuelve a solicitar un recurso al mismo servidor.
En este caso, junto con la solicitud HTTP se enviarán automáticamente las cookies asociadas a ese dominio.
El navegador solo enviará las cookies correspondientes al dominio que las creó.

Solicitud cliente 2.png





Icon activity.jpg
Servidor procesa las cookies
El servidor puede analizar los valores de las cookies enviadas por el cliente.
Con esta información puede personalizar el contenido enviado al usuario.

Servidor entrega con cookie.png





Icon key points.gif

Puntos a tener claros

Puntos clave sobre las cookies
  • El servidor solicita al navegador la creación de una cookie.
  • El navegador guarda la cookie en su almacenamiento local.
  • En cada petición posterior al mismo dominio, el navegador enviará automáticamente esa cookie.
  • Solo el sitio web que creó la cookie puede leerla.
  • Para trabajar con cookies desde el servidor debemos:
 1. Crear o enviar la cookie al cliente.
 2. Leer su contenido cuando el navegador la envíe en una petición.
  • El tamaño máximo habitual de una cookie es de aproximadamente 4 KB.




Icon key points.gif

Tamaño de las Cookies


  • En la mayoría de los navegadores modernos, el tamaño máximo de una cookie individual está limitado a aproximadamente 4096 bytes (4 KB).
  • Este tamaño incluye el nombre, el valor y algunos metadatos asociados.
  • Los navegadores suelen permitir entre 20 y 50 cookies por dominio.
  • El tamaño total de todas las cookies combinadas para un mismo dominio suele estar limitado aproximadamente a 50 KB.
  • Aunque 4 KB es el límite más común, algunos navegadores pueden tener límites ligeramente diferentes.



Crear una cookie

  • Para crear una cookie en PHP utilizamos la función setcookie().
setcookie(nombre_cookie, valor_cookie, tiempo_vida);
  • Esta función puede recibir hasta 7 parámetros, aunque normalmente se utilizan los tres primeros.

http://es.php.net/manual/es/function.setcookie.php

Parámetros más habituales:

  1. Nombre de la cookie
  2. Valor que almacenamos
  3. Tiempo de expiración
  • El tiempo de expiración se expresa como una marca temporal UNIX.

Por ejemplo, para almacenar el nombre de usuario durante una hora:

setcookie("usuario", $_SERVER['PHP_AUTH_USER'], time()+3600);
  • Es importante recordar que las cookies deben enviarse antes de que se envíe cualquier contenido HTML al navegador, igual que ocurre con la función header().

Recuperar la cookie

  • Cuando el navegador accede a un sitio web, envía automáticamente todas las cookies asociadas a ese dominio.
  • Desde PHP podemos acceder a ellas mediante el array $_COOKIE.
$usuario = $_COOKIE['usuario'];

También podemos comprobar si existe una cookie antes de utilizarla:

if(isset($_COOKIE['usuario'])){
    $usuario = $_COOKIE['usuario'];
}

Borrar una cookie

  • Para eliminar una cookie se envía nuevamente con una fecha de expiración pasada.
Icon present.gif
Tip: El tiempo utilizado es una marca temporal UNIX


<?php
 
setcookie("user", "", time()-3600);
 
?>



Icon activity.jpg
Información sobre visitas

Cookies con información de visitas





Icon summary.gif
Objetivo
Creación de cookies
<?php
 
$expire = time()+60*60*24*30; // cookie de 30 días
setcookie("user", "Alex Porter", $expire);
 
?>
Cookie de sesión (se elimina al cerrar el navegador)
<?php
 
setcookie("user", "Alex Porter", 0);
 
?>
Leer cookies
<?php
 
// Ver una cookie concreta
echo $_COOKIE["user"];
 
// Ver todas las cookies
print_r($_COOKIE);
 
?>
Borrar cookies
<?php
 
setcookie("user", "", time()-3600);
 
?>



Ejercicios

{{MRM_Actividad|Title=Control de visitias|

Almacenar el momento de las visitas a una página



Icon activity.jpg
Cookies con momento de visita
  • Haz una aplicación que me muestre guardado por cookie la última vez que visité una determinada página
  • Si es la primera vez, me dirá informará de ellos
  • Si no, me informará de cuántas veces he visitado esta página y la fecha de la última visita




{{


Icon activity.jpg
Altas de cookies
  • Haz un programa que me permita escribir cookies en un cliente
  • Me permitirá especificar al nombre de la cookie y su valor mediante un formulario




{{


Icon activity.jpg
Altas de cookies
  • Modifica el ejercicio anterior con un nuevo input que me permita ver todas las cookies




{{


Icon activity.jpg
Bajas cookies
  • Modifica el ejercicio anterior con un nuevo input que me permita borrar todas las cookies
  • Intenta hacer que pueda borrar sólo las cookies que quiera (usando un checkbox como input de selección)