SESSION
Introducción.-
Una sesión es una
serie de comunicaciones entre un cliente y un servidor en la que se realiza un intercambio
de información. Por medio de una sesión se puede hacer un seguimiento de un usuario
a través de la aplicación. El tiempo de vida de una sesión comienza cuando un
usuario se conecta por primera vez a un sitio web pero su finalización puede
estar relacionada con tres circunstancias:
·
Cuando se abandona el sitio web.
·
Cuando se alcanza un tiempo de inactividad que es
previamente establecido, en este caso la sesión es automáticamente eliminada.
Si el usuario siguiera navegando se crearía una nueva sesión.
·
Se ha cerrado o reiniciado el servidor.
Una posible
aplicación de las sesiones es en el comercio electrónico. En este caso una sesión
permite ir eligiendo una serie de productos e irlos añadiendo a nuestro
“carrito” y así hasta finalizar la compra. Sin el uso de sesiones no se podría
hacer porque al ir navegando de una página a otra se iría perdiendo toda la información.
También se
utilizan para la identificación de usuarios, en la que se deben de introducir
un login y un password. Después de haber hecho esto el usuario tendrá una serie
de permisos sobre las páginas que va a visitar, de tal forma que si un usuario
intenta pasar a una página si haberse identificado, el sistema comprobará que
no se ha identificado y sería redireccionado a la página de identificación. Para poder
realizarse estas operaciones es necesario almacenar en unas tipos sesión la
información necesaria para saber que el usuario se ha identificado
correctamente.
Para poder hacer
uso de las sesiones en JSP hay que poner el atributo session de la directiva
page a true, de esta forma se notifica al contenedor que la página interviene
en un proceso que utiliza las sesiones del protocolo HTTP:
<%@page session=’true’%>
El manejo de las
sesiones impide el intercambio de datos entre ellas ya que se trata información
específica para cada usuario e incluso si se trata del mismo usuario.
COOKIES
Introducción.-
Las
cookies son pequeños bits de información textual, que un servidor web (o un contenedor
de aplicaciones tal como Tomcat) envía a un navegador cliente (tal como
firefox) para identificarlo; el navegador luego devuelve en su petición esa
cookie (o cookies) cuando visita nuevamente ese sitio web. De esta manera el
servidor, a través de una página jsp o servlet, lee las cookies que le envió
previamente en una conexión anterior.
Esta
técnica permite al cliente ciertas ventajas:
·
Identificar a un usuario durante una sesión de comercio
electrónico:
Si alguna vez ha utilizado un carrito de compras
(Shopping Cart), habrá notado que cuando selecciona un ítem, lo añade a su
carrito. Dado que las conexiones HTTP se cierran después de que cada página
se envía, cuando el usuario selecciona un nuevo ítem para su carrito, ¿cómo
sabe el sistema de tienda virtual que ese usuario que acaba de conectar de
nuevo ya tiene iniciada una compra con uno o mas item en su carrito?… las
cookies.
·
Evitar la autentificación constantemente:
Muchos sitios web grandes, requieren un registro
para utilizar sus servicios (Twitter, SlideShare, Facebook, Yahoo! Mail, etc),
sería un grave inconveniente, que cada vez que el usuario realiza una acción
(cambiar de página por ejemplo) se pregunte constantemente por el usuario y la
contraseña a un usuario si ya se ha autentificado al ingresar por primera vez.
Las cookies permiten evitar esto.
·
Personalizar un sitio:
iGoogle es un ejemplo perfecto de la
personalización de un sitio. iGoogle, entre otras cosas, usa una cookie para
“recordar” que widgets le agregaste, cuantas pestañas tienes, etc…
·
Publicidad personalizada:
Un motor de
búsqueda, como Google, puede mantener una pista de las preferencias de un
usuario a lo largo del tiempo, de esta forma, la publicidad que se le muestra a
ese usuario, estará enfocada a sus preferencias de búsqueda.
·
¿Y la seguridad?…
Las cookies no
se “interpretan” o ejecutan en un sistema, por lo que no se puede insertar
virus en ellas para comprometer la integridad del sistema. Los navegadores,
generalmente sólo aceptan 20 cookies por sitio, además un navegador nunca
poseerá más de 300 cookies en total, y cada cookie está limitada a un tamaño de
4 KB, así que no se pueden usar para llenar el disco duro de un cliente
(especialmente con el tamaño de los discos duros modernos).
Sin embargo,
aunque las cookies no presentan una amenaza a la seguridad, si pueden presentar
una seria amenaza a la privacidad. Pero más que culpa de la cookie en sí, los
problemas de privacidad radican en programadores con prácticas poco seguras.
El
funcionamiento esquemático de las cookies es el siguiente:
Las cookies en Java son objetos de la clase Cookie que se encuentra en
el paquete javax.servlet.http
Conviene recordar:
A)No utilizar caracteres tales como []()=,”"/?@:; o
espacios en blanco.
B) Las cookies hay que enviarlas al cliente en la cabecera de la
respuesta y por tanto es necesario no haber escrito absolutamente nada en el
cuerpo del mensaje previamente.