Pregunta

Dado que HTTP es un protocolo sin estado, cuando un cliente hace una serie de peticiones al servidor, ¿cómo el servidor de identificar de forma exclusiva peticiones de un cliente particular durante un período de tiempo decir t1, t2, t3 ..

he echado un vistazo por la web y me encontré con términos como identificador de sesión, la reescritura de URL y galletas. Pero sería genial si alguien lo explica de una manera mejor. Específicamente qué parte de la solicitud y respuesta HTTP se utiliza para el seguimiento de sesión?

¿Fue útil?

Solución

Como se ha mencionado, las formas más comunes para implementar el seguimiento de sesión HTTP incluye la reescritura de URL y las galletas. seguimiento de sesión básicamente requiere que un identificador de sesión se mantiene a través de múltiples peticiones al servidor. Esto significa que cada vez que un cliente dado hace una petición al servidor, pasa el mismo ID de sesión. El servidor puede utilizar este ID para buscar la información de la sesión se mantiene.

Cuando el uso de cookies, el servidor pide al cliente para almacenar una cookie indicando en la cabecera Set-Cookie respuesta HTTP. Esta cookie contiene el identificador de sesión único asignado a ese cliente - en este ejemplo la cadena 'ABAD1D':

    Set-Cookie: JSESSIONID=ABAD1D;path=/

La cookie se envía de vuelta al servidor por el cliente utilizando el encabezado de solicitud HTTP Cookie en cada solicitud y por lo tanto se informa al servidor en cada petición el identificador de sesión asignado actualmente al cliente.

    Cookie: JSESSIONID=ABAD1D

Cuando se utiliza la reescritura de URL, este mismo ID de sesión se envió en su lugar en algún lugar de la URL. Una vez más, el servidor extrae el identificador de sesión de la dirección URL para que pueda buscar la sesión para un cliente en particular:

    http://my.app.com/index.jsp;JSESSIONID=ABAD1D

Sin embargo, el servidor también debe asegurarse de que todas las URL de las páginas web enviadas de vuelta al cliente también se reescriben para contener esa particular ID de sesión clientes. A medida que el identificador de sesión está codificada en las direcciones URL, este método de seguimiento de sesión es transparente para el navegador. A menudo, un servidor recurrirá a la reescritura de URL si encuentra que es incapaz de establecer una cookie de sesión en el cliente -. Lo que implica que el cliente no soporta / permitir las cookies

Tenga en cuenta que las sesiones pueden caducar. Esto significa que si el servidor no 'ver' un identificador de sesión dada por un período de tiempo, puede eliminar los datos de la sesión de preservar los recursos.

Otros consejos

  

que Específicamente parte del HTTP   solicitud y la respuesta se utilizan para   seguimiento de la sesión?

En la respuesta HTTP, el servidor puede establecer una cookie. Lo hace con la cabecera Set-Cookie. Por ejemplo:

Set-Cookie: session=12345; path=/

Luego, el cliente devuelve el valor de todas las cookies que coinciden con las propiedades que se establecieron junto con la cookie, que pueden incluir ruta (como el anterior) y el dominio, y que no han expirado todavía.

La cookie se envía de vuelta al servidor como parte de las cabeceras HTTP. Por ejemplo:

Cookie: session=12345

Ninguna de la información de propiedad original se envía de vuelta con la cookie.

Una cookie única permite al servidor para asociar una clave única con una instancia de navegador en particular. El servidor puede utilizar esa clave como un índice en una tabla hash o una tabla de base de datos que contiene información de estado único para cada usuario.

seguimiento de sesión es una cosa del lado del servidor.

Un servidor web emite algún identificador de sesión que se devuelve al navegador. Explorador envía este identificador de sesión junto con cada solicitud.

Esta es, probablemente, hace uso de cookies de forma transparente para el usuario.

el manejo sesión se encuentra en la mayoría de casos manejados por el envío de un galletas al cliente . esa galleta sería enviado de vuelta al servidor en cada petición de ese cliente en particular.

El session id estará asociado con algunos recursos en el lado del servidor (archivo, espacio de memoria RAM) para que el servidor mediante la lectura de la session id en la cookie puede encontrar este recurso y luego saber qué cliente que era.

href="http://www.sbalasani.com/2015/12/servlets-session-management.html" aquí

HTTP Sesiones son el método recomendado. Una sesión identifica las solicitudes que se originan desde el mismo navegador durante el período de la conversación. Todos los servlets pueden compartir la misma sesión. El JSESSIONID se genera por el servidor y se puede pasar al cliente a través de cookies, URL re-escritura (si se desactivan las cookies) o mecanismo incorporado de SSL. Se debe tener cuidado para minimizar el tamaño de los objetos almacenados en sesión y los objetos almacenados en la sesión debe ser serializable. En un servlet de Java la sesión se puede obtener de la siguiente manera:

HttpSession session = request.getSession (); // devuelve sesión actual o una nueva sesión

Las sesiones pueden ser programados a cabo (configurados en web.xml) o manualmente invalidado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top