Seguimiento de Sesión

El seguimiento de sesión (Session Tracking) se utiliza para registrar las acciones del usuario en una web. Los eventos como los clics o la cumplimentación de un formulario se tratan como secuencias, y se resumen en una sesión para poder registrarlos como clientes individuales.

La comunicación entre el servidor y el cliente es siempre apátrida en Internet. Esto significa que el protocolo HTTP utilizado trata cada petición, como llamar a una web, individualmente, y responde a ella. Para poder asignar a un usuario como un cliente que plantea múltiples peticiones al servidor, es necesario el seguimiento para asignar tantas peticiones[1] Esto ocurre a través del intercambio de datos adicionales entre el servidor y el cliente.

Ventajas y beneficios[editar]

El seguimiento de sesiones crea un estado virtual. El usuario individual se asigna con la ayuda de un ID de sesión. Todas las acciones realizadas por el usuario pertenecen a este ID. Pueden seguir un enlace, colocar productos en el carrito de la compra o rellenar formularios: los datos introducidos se tratan como un estado y están disponibles durante toda la sesión. Esto aumenta la experiencia del usuario y garantiza que los datos personales no se transfieran al servidor. Sólo el ID de sesión se intercambia entre el servidor y el cliente.

Además: Una sesión normalmente dura una cierta cantidad de tiempo que se define durante la implementación del seguimiento de la sesión. Todos los datos se guardan en el lado del cliente y sólo se conservan durante este período de tiempo. Tan pronto como finalice una sesión, los datos expirarán.

El seguimiento de sesiones se utiliza con frecuencia para las tiendas online: si los usuarios introducen datos a través de un formulario o añaden productos a un carrito de la compra, es útil para la tienda online si el cliente guarda estos datos para su uso posterior.

El seguimiento de sesiones también se utiliza a menudo en las redes de afiliados: Si un usuario hace clic en un banner y visita otrao web mientras tanto, el ID de sesión puede ser útil más adelante durante la compra de un producto. Se puede utilizar para determinar qué afiliado fue el causante de que la compra asignara correctamente la comisión.

Implementación[editar]

Hay cuatro maneras posibles de implementar el seguimiento de las sesiones[2].

Cookies[editar]

Las cookies son el método más popular para implementar el seguimiento de sesiones. En el siguiente ejemplo, se genera un ID de sesión asociado a los datos de usuario en forma de tabla (hashmap). A continuación, se pueden importar todos los datos pertenecientes al ID de sesión (SessionInfo). La cookie actúa como mediador entre los datos de usuario y el ID de sesión. Se puede hacer referencia a varias sesiones (persistente) o se puede eliminar después de una sesión (no persistente). El ejemplo muestra una cookie no persistente.[3]

String sessionID = makeUniqueString();
HashMap sessionInfo = new HashMap();
HashMap globalTable = findTableStoringSessions();
globalTable.put(sessionID, sessionInfo);
Cookie sessionCookie = new Cookie("JSESSIONID", sessionID);
sessionCookie.setPath("/");
response.addCookie(sessionCookie)

Campo de formulario oculto[editar]

Los campos ocultos en el código HTML también se pueden utilizar para insertar el seguimiento de sesión para determinadas URL. Los parámetros de estos campos se leen automáticamente en el parámetro GET y en los datos POST del servidor cuando se llama. Sin embargo, los campos ocultos están conectados a sitios web creados dinámicamente, por lo que este método sólo se recomienda para ciertos tipos de webs, por ejemplo, las páginas de pago[4].

<input name="session" type="HIDDEN" value="1234">

Reescritura de URL[editar]

Con este enfoque, cada URL a la que accede el usuario se modifica mediante un parámetro. El parámetro actúa como un ID de sesión y el servidor lo asocia con los datos de usuario disponibles.

http://www.beispielseite/pfad/datei.html;jsessionid=a1234

La última parte de la URL ";jsessionid=a1234" identifica al usuario con el ID de sesión a1234. El problema con este enfoque es el hecho de que todas las URLs tienen que ser creadas dinámicamente, como en el caso de los campos ocultos. Por lo tanto, la reescritura de URL para el seguimiento de sesiones no puede utilizarse en sitios web estáticos[5]. Además, puede producirse un secuestro de sesión durante la reescritura de URL.

Sesión HTTP[editar]

El seguimiento de sesiones también se puede realizar con la ayuda de la API de sesiones HTTP de Java. Un objeto se crea aquí, dentro del entorno HTTP con la ayuda de contenedores web y Servlets y puede ser direccionado, guardado o modificado a través de diferentes métodos. La API ofrece todas las herramientas necesarias para el seguimiento de las sesiones de trabajo[6].

HttpSession session = request.getSession();
synchronized(session) {
SomeClass value =
(SomeClass)session.getAttribute("someID");
if (value == null) {
value = new SomeClass(...);
}
doSomethingWith(value);
session.setAttribute("someID", value);
}

El seguimiento de la sesión HTTP se basa en cookies o en la reescritura de URL. En el último caso, los cambios en las URLs son necesarios para reenviar la información del estado sobre una URL solicitada.

Proveedores Gratuitos[editar]

Los siguientes proveedores de herramientas de análisis web (también) utilizan el seguimiento de sesiones para registrar y evaluar las acciones de los usuarios. Los proveedores son gratuitos. Sin embargo, el uso suele estar relacionado con la necesidad de que los datos de la página web estén disponibles para el sistema y, por lo tanto, se graben externamente.

  • Google Analytics: Los proveedores más utilizados en el área de análisis web
  • eAnalytics: Un software de código abierto para particulares y empresas que se puede personalizar según las necesidades individuales.
  • Open Web Analytics: software de código abierto que también armoniza con WordPress y MediaWiki.

Importancia para el análisis web[editar]

El seguimiento de sesiones es un estándar en el análisis web y tiene algunas ventajas en comparación con otros métodos. Por el contrario, la aplicación en dispositivos móviles no es posible con este tipo de seguimiento web. A la luz del creciente uso de dispositivos móviles en el comercio electrónico, el seguimiento de sesiones sólo cubre una parte de las interacciones y, por lo tanto, sólo puede observarse de forma condicionada como una base de datos precisa para un análisis exhaustivo de la web.

Al igual que con otros modelos de rastreo, se deben considerar los aspectos de privacidad de datos. Todos los datos personales deben estar enmascarados o separados de los datos del usuario. El consentimiento del usuario también debe obtenerse bajo ciertas condiciones. Por ejemplo, si el seguimiento de sesión es sólo una parte del seguimiento y la dirección IP es llamada y guardada adicionalmente.

Referencias[editar]

  1. Session Tracking pdf.coreservlets.com. Visitado el 15 Dic 2014
  2. Session Tracking java-programming.info. Visitado el 15 de Dic 2014
  3. Session Tracking pdf.coreservlets.com. Visitado el 15 de Dic 2014
  4. Servlets - Session Tracking tutorialspoint.com. Visitado el 15 de Dicc 2014
  5. Introducción rápida a Programación Servlet Básica informit.com. Visitado el 15 de Dic 2014
  6. Session Tracking java-programming.info. Visitado el 15 de Dic 2014

Enlaces Web[editar]