Sie sind auf Seite 1von 9

Tema 5 Revisin de tecnologas Web

Comercio Electrnico
Csar Fernndez Acebal Universidad de Oviedo
www.cesaracebal.com acebal@uniovi.es

HTTP, protocolo sin estado


HTTP es un protocolo sin estado Esto significa que para el servidor Web cada peticin de una pgina es nica
No tendra forma de saber, por ejemplo, que ese usuario acaba de aadir un producto a su carrito, o si ya se valid o no, en qu punto del proceso de compra se encuentra, etctera

Son necesarias alternativas software, por tanto, que permitan simular el estado

Comercio Electrnico (EUITIO) Csar Acebal

Alternativas
Aunque hay varias formas de hacerlo (dependiendo de si trabajamos en ASP, en J2EE) la mayora pasan por el uso de cookies Algunas de las alternativas son:
Usar el objeto Session (o similar) provisto por los entornos de programacin como ASP o J2EE (Servlets, JSP...) Almacenar toda la informacin de la sesin, a mano, en una cookie (por ejemplo, mediante JavaScript) Una combinacin de cookie (para guardar un ID de usuario) y bases de datos URL rewriting Etctera
Comercio Electrnico (EUITIO) Csar Acebal

Cookies
Veamos una introduccin a las cookies y algunos ejemplos en los que aprenderemos a manipularlas.

Qu son las cookies?


Las cookies son pequeas porciones datos que son almacenados localmente por el navegador en forma de pequeos ficheros de texto Cada vez que el cliente enva informacin al servidor, incluye en la peticin HTTP las cookies que previamente haya guardado provenientes de ese servidor

Comercio Electrnico (EUITIO) Csar Acebal

Detalles de implementacin
Segn la especificacin, un agente de usuario (es decir, un navegador), debe permitir al menos:
Un total de 300 cookies Hasta 4 KB (4.096 bytes) por cookie Al menos 20 cookies de un servidor dado

El navegador se encarga automticamente de eliminar aqullas que hace ms tiempo que no se utilizan cuando necesita guardar nuevas cookies

Comercio Electrnico (EUITIO) Csar Acebal

Sintaxis
Cada cookie presenta la siguiente sintaxis general:
nombre=valor; [expires=fecha; path=directorio; domain=nombreDeDominio; secure]

Lo nico obligatorio es que tenga un nombre y un valor asociado; el resto de atributos son opcionales
Aunque tambin se utiliza bastante el atributo expires

Comercio Electrnico (EUITIO) Csar Acebal

Descripcin de los atributos


Un par nombre = valor
Por ejemplo: IDUsuario = 49; expires Hasta cundo ser vlida la cookie
Debe ir en este formato: Wdy, DDDD-Mon Mon-YYYY HH:MM:SS GMT Si no se dice nada, la cookie ser eliminada al terminar la sesin
Es decir, al cerrar la ventana actual del navegador

path El conjunto de directorios del servidor para los que es vlida esta cookie (por omisin, ser el raz /, es decir, todos)
Comercio Electrnico (EUITIO) Csar Acebal

Descripcin de los atributos (2)


domain El servidor o nombre de dominio para el que es vlida la cookie Una cookie slo puede ser leda y modificada desde el servidor y directorio especificados en la cookie cuando sta fue creada secure Es booleano; si est definido (si aparece el atributo) deber haber una conexin segura (https) para que la cookie sea enviada

Comercio Electrnico (EUITIO) Csar Acebal

Uso de cookies en ASP


Veamos de qu forma podemos establecer y leer cookies en ASP.

Response.Cookies
Mediante la coleccin Cookies del objeto predefinido Response podemos establecer el valor de una cookie
Si la cookie especificada no existe, se crear Si existe, machacar el valor que tuviera anteriormente

Ejemplo:
<% Response.Cookies(IDUsuario) = 49 Response.Cookies(IDUsuario).Expires = December 31, 2004 %>
Comercio Electrnico (EUITIO) Csar Acebal

11

Leer el valor de una cookie


Se hace a travs de la misma coleccin, slo que ahora sin especificar ningn valor:
<%= Request.Cookies(IDUsuario) %>

Comercio Electrnico (EUITIO) Csar Acebal

12

Ejemplo: contador de visitas


Realicemos un sencillo ejemplo en el que se cuenten las visitas de un usuario a una pgina

Comercio Electrnico (EUITIO) Csar Acebal

13

URL Rewriting
Consiste en incluir la informacin del estado en el propio URL
//comprar.asp?paso=3&producto1=01992CX&produc to2=ZZ112230&producto3=HJ19X25

No es de recibo en aplicaciones serias


Un cliente puede iniciar dos o ms sesiones simultneas, pginas tediosas de programar, slo se puede usar el mtodo GET, etc.

Comercio Electrnico (EUITIO) Csar Acebal

14

Ventajas e inconvenientes
Almacenar el estado de la sesin en el cliente presenta algunas ventajas frente a hacerlo en el servidor, pero tambin tiene algunos inconvenientes.

Ventajas
Menor uso de los recursos del servidor
Los servidores sin estado no necesitan reservar y mantener recursos para guardar el estado de la sesin

Fcil escalabilidad y uso de clusters


Al no tener estado, cualquier servidor puede atender a cualquier cliente
No hace falta que un cliente siempre sea atendido por el mismo servidor, ni ningn tipo de distribucin del estado entre servidores

La sesin del cliente podra sobrevivir a una cada del servidor


Un reintento por parte del cliente con el mismo URL suele funcionar
Comercio Electrnico (EUITIO) Csar Acebal

16

Inconvenientes
Privacidad
Otros servidores podran leer informacin almacenada en las cookies del cliente
No son vlidas para guardar nmeros de tarjeta, contraseas y cosas por el estilo

Los datos pueden ser alterados


Un usuario podra modificar el fichero de una cookie Lo mismo ocurre con otros mecanismos de cliente: URL, formularios, etc.

Aumenta el trfico por la red


El estado se transmite con cada peticin al servidor
Comercio Electrnico (EUITIO) Csar Acebal

17

Inconvenientes
Implementacin compleja
Mantener a mano el estado en el cliente puede ser realmente complicado si queremos hacerlo de manera robusta
(Lo hemos visto con el ejemplo del sitio Web de cine en ASP)

Tamao de datos limitado


Tanto el tamao mximo permitido por las cookies como la longitud mxima de un URL pueden darnos problemas para almacenar sesiones complejas

Comercio Electrnico (EUITIO) Csar Acebal

18

Das könnte Ihnen auch gefallen