Discutir los principios y aplicaciones de sesiones y cookies.


Prefacio

Al utilizar la sesión, el proyecto javaweb implementa el control del estado de inicio de sesión. La combinación de sesión y cookie se utiliza para monitorear el estado de inicio de sesión del usuario. Este artículo integra principalmente los principios y aplicaciones de sesiones y cookies en Internet, espero que sea de ayuda para todos.


1. Principio de análisis

Cuando el navegador accede al sistema, la solicitud analizará el jssessionid incluido en la solicitud y lo usará para encontrar la sesión que existe en la aplicación. Sin embargo, si no se encuentra, se llamará al método de creación de sesión y se creará un nuevo jssessionid. Se generará y se devolverá la sesión. (Las siguientes capturas de pantalla se citan de la publicación del blog en línea https://my.oschina.net/mingyuelab/blog/2986928 Autor: Qianli Mingyue)
Encabezados de respuesta obtenidos de la primera solicitud.
Cuando el cliente accede al sistema del servidor por primera vez, el sistema generará una sesión. y se establecerá el encabezado de respuesta Set-Cookie en la respuesta, y su valor es JESSIONID=xxx. De esta manera, el navegador recordará la conexión entre localhost:8080 y la cookie, y la almacenará, lo que se puede ver en la herramienta de depuración.
El navegador almacena cookies
Luego visite http://localhost:8080/txx nuevamente, el navegador agregará activamente información de cookies, incluido jsession, al encabezado de la solicitud.
El encabezado de la solicitud lleva el ID de sesión.
Tenga en cuenta que el navegador completa automáticamente las dos operaciones de incorporar set-cookie en el encabezado de respuesta y agregar información de cookies, incluida jsession.

Entonces, ¿qué debemos hacer durante el desarrollo back-end para identificar si es el mismo usuario?

De hecho, cuando se desarrolla en Java, el servidor crea automáticamente una memoria después de recibir una solicitud de inicio de sesión del navegador, genera un objeto de sesión que apunta a esta memoria y genera un ID de sesión que apunta a esta sesión. Entonces es sessionid -> session -> memoria, esto es lo que javaWeb hace por nosotros. Luego, después de que el código de fondo verifique que el nombre de usuario y la contraseña sean correctos, la información relacionada con el usuario se puede almacenar en la memoria de la sesión.

 //密码验证正确后,在session中存储登录的用户名
 session.setAttribute("user","张三");
 //退出登录后,移除用户名
 session.removeAttribute("user");

2. Solicitud

1. Hay muchas formas de guardar la sesión en el servidor, incluida la memoria, la base de datos y los archivos. La transferencia de sesión también se debe considerar al agrupar. En sitios web grandes, generalmente hay un clúster de servidor de sesión dedicado para guardar las sesiones de los usuarios. En este momento, la información de la sesión se almacena en la memoria y se utilizan algunos servicios de almacenamiento en caché como Memcached. Sesión.
2. Cuando el navegador del cliente desactiva las cookies, se puede utilizar la tecnología de reescritura de URL para el seguimiento de la sesión, es decir, para cada interacción HTTP, se agregará un parámetro como sid=xxxxx a la URL y el servidor identificará al usuario en consecuencia. .

Supongo que te gusta

Origin blog.csdn.net/liangxiaoyan0426/article/details/131264765
Recomendado
Clasificación