Post on 12-Jun-2015
description
Desarrollo de Aplicaciones Web II
Octubre 21 de 2009
Navegador
Estación
de trabajo
Servidor de
aplicaciones
Base de
datos
Internet
De nuevo el esquema…
HTTP es un protocolo sin estado.
El servidor Web trata cada solicitud HTTP de
página como solicitud independiente.
De forma predeterminada, el servidor no retiene
información alguna sobre los valores de las
variables que se utilizan durante las solicitudes
realizadas.
Las páginas Web no persisten datos dinámicos
por sí mismas.
Las bases de datos ayudan a cumplir el propósito
anterior.
Sin embargo, es posible que se necesite persistir
datos entre diferentes páginas y/o módulos de
una aplicación Web.
La creación de aplicaciones Web que necesitan
mantener la información de estado entre las
solicitudes enviadas puede resultar siendo una
tarea complicada.
Ante esta necesidad, las aplicaciones
Web, dependiendo de la plataforma y el
lenguaje de programación, poseen un
mecanismo que permite lograr dicha
persistencia de datos…
Una facilidad que permite vincular información a
un visitante a lo largo de sus diversos accesos a
nuestras aplicaciones web.
Un visitante puede acceder a varias páginas de
nuestras aplicaciones y las sesiones nos ayudan a
identificarlo y a vincularle información.
Mejorar la experiencia del usuario almacenando información de preferencias como colores o elementos de navegación preferidos.
Almacenar información de estado, por ejemplo, si un usuario está logueado o no.
En el caso de una aplicación de comercio electrónico llevar registro de los productos que ha agregado a su carro de compras, o de productos que ha comprado anteriormente para establecer sus preferencias.
Estos son solo unos ejemplos pero las posibilidades son infinitas.
Cuando se quiera almacenar información en
relación a un visitante de forma persistente
a lo largo de su visita, las sesiones nos
facilitarán la vida.
El servidor procesa los
datos enviados por el
cliente y devuelve la
respuesta según la
lógica dada.
Las sesiones son
procesadas en el
servidor, por lo cual
llegan al cliente
después de que
éste las solicita.
Las sesiones son almacenadas en el servidor de tal
manera que, al ser solicitadas por el cliente, puedan ser
recuperadas.
Las sesiones NO son iguales para todos los clientes.
Para ello, se maneja un identificador en el servidor por
cada cliente que las procesa.
Sesión
1 2
El caso normal se da en cuanto el usuario cambie
de página, algo que suele ser habitual en
cualquier aplicación web. Por ello, tendremos
que encargarnos de almacenar la información de
su sesión de alguna forma.
Para resolver este problema podemos optar por
distintas alternativas...
Almacenar la información de la sesión manualmente en el
cliente, para lo cual se pueden emplear cookies.
Crear algún tipo de mecanismo que nos permita almacenar
manualmente en el servidor los datos de cada sesión de
usuario (por ejemplo, tokens).
Dejar que los datos relativos a las sesiones se almacenen
automáticamente en el servidor.
Una cookie, "galletita", es una
pequeña cantidad de datos
almacenada en el cliente.
En realidad, se trata simplemente
de un par nombre-valor
acompañado por una fecha de
caducidad.
Los datos de una cookie se pasan al servidor
como parte de cada solicitud HTTP, de forma
que la aplicación web tiene acceso inmediato
a esos datos del cliente.
Además, la aplicación puede manipular la
cookie para almacenar los datos que le
interesen en cada momento.
Los datos asociados a una cookie se almacenan en
la máquina cliente.
Nada nos garantiza que los datos en el cliente están
almacenados de forma segura.
De hecho, usualmente se guardan sin ningún tipo de
protección.
Las cookies se usan con frecuencia para mantener sesiones de
usuario.
También para analizar los usos y costumbres de los usuarios
de portales web.
◦ Éste último punto, llevado al extremo, es lo que ha dado mala fama
a la utilización de cookies y ha provocado que muchos usuarios,
celosos de su privacidad, deshabiliten el uso de cookies en sus
navegadores.
En realidad, su uso proviene simplemente del hecho de que
mantener una pequeña cantidad de datos en el cliente
simplifica enormemente el seguimiento de los movimientos
del usuario y descarga notablemente al servidor web, que no
ha de emplear tiempo en analizar de dónde viene cada
solicitud.
Aparte de los posibles problemas de privacidad que
puede ocasionar el uso de cookies, también hay que
tener en cuenta que la manipulación de las cookies
creadas por nuestra aplicación web se puede
convertir en un arma de ataque contra nuestra
propia aplicación, por lo que debemos ser
extremadamente cuidadosos a la hora de decidir
qué datos almacenarán las cookies.
Preguntas...