Estoy entrenando en desarrollo web y estoy aprendiendo sobre JSP y Servlets . Tengo algún conocimiento de HttpSession
: lo he usado en algunos de mis proyectos de muestra.
En los navegadores, he visto la opción de "eliminar cookies". Si elimino las cookies, también elimina la HttpSession
.
¿Son iguales las cookies y la sesión? Cuáles son las diferencias entre ellos?
Respuestas:
Las sesiones son archivos del lado del servidor que contienen información del usuario, mientras que las cookies son archivos del lado del cliente que contienen información del usuario. Las sesiones tienen un identificador único que las asigna a usuarios específicos. Este identificador puede pasarse en la URL o guardarse en una cookie de sesión.
La mayoría de los sitios modernos utilizan el segundo enfoque, guardando el identificador en una cookie en lugar de pasarlo a una URL (lo que representa un riesgo de seguridad). Probablemente esté utilizando este enfoque sin saberlo, y al eliminar las cookies, borra efectivamente sus sesiones coincidentes a medida que elimina el identificador de sesión único contenido en las cookies.
fuente
Una cookie es simplemente una cadena de texto corta que se envía de un lado a otro entre el cliente y el servidor. Puede almacenar
name=bob; password=asdfas
una cookie y enviarla de un lado a otro para identificar al cliente en el lado del servidor. Podría pensar en esto como un intercambio con un cajero de banco que no tiene memoria a corto plazo y necesita que se identifique para cada transacción. Por supuesto, usar una cookie para almacenar este tipo de información es horrible e inseguro. Las cookies también tienen un tamaño limitado.Ahora, cuando el cajero del banco sabe sobre su problema de memoria, puede escribir su información en una hoja de papel y asignarle un número de identificación corto. Luego, en lugar de dar su número de cuenta y licencia de conducir para cada transacción, puede decir "Soy cliente 12"
Traduciendo eso a los servidores web: el servidor almacenará la información pertinente en el objeto de sesión y creará una ID de sesión que enviará de vuelta al cliente en una cookie. Cuando el cliente devuelve la cookie, el servidor simplemente puede buscar el objeto de sesión utilizando la ID. Entonces, si elimina la cookie, la sesión se perderá.
Otra alternativa es que el servidor use la reescritura de URL para intercambiar la identificación de la sesión.
Supongamos que tiene un enlace:
www.myserver.com/myApp.jsp
puede pasar por la página y reescribir cada URL comowww.myserver.com/myApp.jsp?sessionID=asdf
o inclusowww.myserver.com/asdf/myApp.jsp
e intercambiar el identificador de esa manera. Esta técnica es manejada por el contenedor de la aplicación web y generalmente se activa configurando la configuración para usar sesiones sin cookies.fuente
Las cookies y la sesión almacenan información sobre el usuario (para que la solicitud HTTP tenga estado), pero la diferencia es que las cookies almacenan información en el lado del cliente (navegador) y las sesiones almacenan información en el lado del servidor. Una cookie es limitada en el sentido de que almacena información sobre usuarios limitados y solo almacena contenido limitado para cada usuario. Una sesión no está limitada de esa manera.
fuente
Ya hay muchas contribuciones en este hilo, solo resuma un diagrama de secuencia para ilustrarlo de otra manera.
También es un buen enlace sobre este tema, https://web.stanford.edu/~ouster/cgi-bin/cs142-fall10/lecture.php?topic=cookie
fuente
Cookie es básicamente una matriz global a la que se accede a través de navegadores web. Muchas veces se utilizan para enviar / recibir valores. Actúa como un mecanismo de almacenamiento para acceder a valores entre formularios. El navegador puede deshabilitar las cookies, lo que agrega una restricción a su uso en comparación con la sesión.
La sesión se puede definir como algo entre iniciar y cerrar sesión. el tiempo entre el inicio y cierre de sesión del usuario es una sesión. La sesión almacena valores solo para el tiempo de sesión, es decir, antes de cerrar sesión. Las sesiones se utilizan para rastrear las actividades del usuario, una vez que inicia sesión.
fuente
Google JSESSIONID . Esto explicará cómo la API de Servlet inicialmente utiliza la reescritura de URL y luego, si las cookies están habilitadas, las cookies para administrar las sesiones.
HTTP no tiene estado, por lo que el navegador del cliente debe enviar la identificación de su sesión al servidor con cada solicitud. El servidor, a través de cualquier medio, utiliza esta identificación para recuperar cualquier dato de esa sesión y hacer que esté disponible durante la vigencia de la solicitud.
fuente
Sesión en Asp.net:
1. Mantiene los datos en toda la aplicación.
2.Persiste los datos si la sesión actual está activa. Si necesitamos acceder a algunos datos desde varias acciones y vistas de controladores, la sesión es la forma de almacenar y recuperar datos.
3. Las sesiones son archivos del lado del servidor que contienen información del usuario. [Las sesiones son un identificador único que las asigna a usuarios específicos]
Traduciendo eso a los servidores web: el servidor almacenará la información pertinente en el objeto de sesión y creará una ID de sesión que enviará de vuelta al cliente en una cookie. Cuando el cliente devuelve la cookie, el servidor simplemente puede buscar el objeto de sesión utilizando la ID. Entonces, si elimina la cookie, la sesión se perderá.
fuente
La cookie es una forma de implementar la sesión entre el cliente y el servidor, de esta manera la información de la sesión almacenada en la cookie. Pero esta no es la única forma de mantener la información de la sesión, otra forma es almacenar la información de la sesión en la URL.
fuente
Las cookies se almacenan en el navegador como un formato de archivo de texto. Se almacena la cantidad límite de datos. Solo permite 4kb [4096bytes] . La variable $ _ COOKIE no contendrá múltiples cookies con el mismo nombre
podemos acceder fácilmente a los valores de las cookies, por lo que es menos seguro . La función setcookie () debe aparecer ANTES de
etiqueta.
Sesiones se almacenan en el lado del servidor. Se almacena una cantidad ilimitada de datos. Se mantiene la variable múltiple en las sesiones. no podemos acceder fácilmente a los valores de las cookies, por lo que es más seguro .
Enlaces: diferencia entre cookies y sesiones
fuente