desarrollo de aplicaciones web ii - sesión 08: sesiones y cookies

22
Desarrollo de Aplicaciones Web II Octubre 21 de 2009

Upload: didier-granados

Post on 12-Jun-2015

5.332 views

Category:

Technology


1 download

DESCRIPTION

Las aplicaciones Web, dependiendo de la plataforma y el lenguaje de programación, poseen un mecanismo que permite lograr la persistencia de datos durante la interacción de un usuario y sin tener que depender de las bases de datos.

TRANSCRIPT

Page 1: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

Desarrollo de Aplicaciones Web II

Octubre 21 de 2009

Page 2: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

Navegador

Estación

de trabajo

Servidor de

aplicaciones

Base de

datos

Internet

De nuevo el esquema…

Page 3: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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.

Page 4: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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.

Page 5: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

La creación de aplicaciones Web que necesitan

mantener la información de estado entre las

solicitudes enviadas puede resultar siendo una

tarea complicada.

Page 6: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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…

Page 7: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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.

Page 8: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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.

Page 9: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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.

Page 10: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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.

Page 11: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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

Page 12: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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...

Page 13: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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.

Page 14: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Page 15: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Page 16: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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.

Page 17: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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.

Page 18: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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.

Page 19: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Page 20: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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.

Page 21: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

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.

Page 22: Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

Preguntas...