Si HTTP no tiene estado, entonces, ¿cómo entiende un servidor web que cada sesión es única?

De hecho, HTTP no tiene estado, por lo que surge la pregunta de cómo el servidor mantiene la sesión para un usuario en particular. Vamos a entender esto con un simple ejemplo.

Supongamos que hay 3 empleados A, B y C y D es su empleador

  1. Nadie se conoce el uno al otro, pero saben (D les dijo) que la persona con una rosa roja etiquetada en la camisa es genuina.
  2. Parte del oro debe transferirse de A a C. A se encuentra con B y encuentra que la persona B tiene una rosa roja etiquetada en su camisa, por lo que A le da oro a B.
  3. Ahora, B está buscando a una persona con una rosa roja etiquetada en su camisa, pero una persona E vino a reclamar el oro. B identifica que esta persona no es genuina.
  4. Finalmente, B se encuentra con C y descubre que esa persona C tiene una rosa roja etiquetada en su camisa, por lo que B le da oro a C.

De manera similar, el servidor envía un conjunto de tokens (palabras clave secretas) ( en mi ejemplo, rosa roja ) que el navegador almacena y, si la solicitud se realiza una y otra vez desde el mismo servidor del navegador, encuentra que esta es la misma persona que también realizó la solicitud anterior.

Nota: He dado una explicación de muy alto nivel solo para entender el concepto. Hay tantos if y buts y otras formas como UrlRewriting, etc. para implementar la sesión.

Los sitios web suelen utilizar cookies para identificar a los usuarios. Por lo general, cuando un usuario visita un sitio web por primera vez, el servidor establecerá una identificación de sesión generada aleatoriamente. A veces, la aplicación web que se ejecuta en el servidor web asignará una identificación de sesión o un token cuando el usuario inicie sesión en el sitio web.

Cada solicitud posterior al sitio web incluye la identificación de la sesión establecida en cookies en el encabezado de la solicitud. La aplicación web o el servidor web pueden leer las cookies de los encabezados de solicitud HTTP e identificar la sesión del usuario.