¿Cuándo debo usar cookies y cuándo debo usar sesiones?

La pregunta no está muy clara porque la sesión y la cookie son cosas diferentes … Lo que puedo entender es que quieres diferenciar entre las sesiones de cookies y las que no tienen cookies.

Cuando se habla de Sesión en muchos sitios web dinámicos, desea almacenar datos de usuario entre solicitudes HTTP (porque http no tiene estado y no puede asociar una solicitud a ninguna otra solicitud), pero no desea que esos datos sean legibles / editable en el lado del cliente porque no desea que el cliente juegue con esos datos sin pasar por su código (del lado del servidor).

La solución es almacenar ese lado del servidor de datos, darle una “identificación” y dejar que el cliente solo sepa (y devuelva cada solicitud http) esa identificación. Ahí tienes, sesiones implementadas. O puede usar el cliente como un almacenamiento remoto conveniente, pero cifraría los datos y mantendría el lado secreto del servidor.

Por supuesto, hay otros aspectos a tener en cuenta, como si no quieres que las personas secuestren las sesiones de otros, quieres que las sesiones no duren para siempre sino que expiren, y así sucesivamente.

El estado de la sesión contiene información que pertenece a una sesión específica (por un cliente / navegador / máquina en particular) con el servidor. Es una forma de rastrear lo que el usuario está haciendo en el sitio … en varias páginas … en medio de la apatridia de la Web. por ejemplo, el contenido del carrito de compras de un usuario en particular son datos de sesión. Las cookies se pueden usar para el estado de la sesión.

Las cookies son pequeños fragmentos de texto, almacenados en la computadora del cliente para ser utilizados únicamente por el sitio web que configura las cookies. Esto permite que las aplicaciones web guarden información para el usuario y luego la reutilicen en cada página si es necesario. Cada sesión tendrá SessionID. Y la ID de sesión es un número único que el servidor asigna a un usuario específico durante su visita (sesión). Y, por defecto, la ID de sesión se adjunta a una cookie y esta cookie se compartirá de cliente a servidor (y de servidor a cliente) durante sus solicitudes / respuestas. Y el servidor identificará la sesión en función del ID de sesión que se recupera de la cookie.

Y con respecto a las cookies , si su navegador no admite cookies o está deshabilitado, se utilizará sin cookies. Como no tiene cookies, el sitio oficial de Microsoft ASP.NET no puede crear una cookie para guardar la identificación de la sesión. En cambio, la identificación de la sesión se pasará en una cadena de consulta.

Artículo fuente: sesión ASP.NET vs estado de sesión y cookies vs cookie menos

El concepto es almacenar datos persistentes en las cargas de página para un visitante de la web. Las cookies lo almacenan directamente en el cliente. Las sesiones usan una cookie como una especie de clave, para asociarse con los datos almacenados en el lado del servidor.

Se prefiere usar sesiones porque los valores reales están ocultos para el cliente, y usted controla cuándo caducan los datos y dejan de ser válidos. Si todo se basara en cookies, un usuario (o hacker) podría manipular sus datos de cookies y luego reproducir solicitudes en su sitio.

Editar: no creo que haya ninguna ventaja al usar cookies, aparte de la simplicidad. Míralo de esta manera … ¿Tiene el usuario alguna razón para conocer su número de identificación? Por lo general, diría que no, el usuario no necesita esta información. Dar información debe limitarse en función de la necesidad de saber. ¿Qué sucede si el usuario cambia su cookie para tener una ID diferente, cómo responderá su aplicación? Es un riesgo de seguridad.

Antes de que las sesiones estuvieran de moda, básicamente tenía mi propia implementación. Almacené un valor de cookie único en el cliente y almacené mis datos persistentes en la base de datos junto con ese valor de cookie. Luego, en las solicitudes de página, comparé esos valores y obtuve mis datos persistentes sin dejar que el cliente controlara lo que era.

Las cookies se almacenan en el lado del cliente, para que el usuario pueda verlas, editarlas y eliminarlas. Por lo tanto, tenga cuidado de no almacenar información confidencial en las cookies.

Las sesiones se usan cuando se pasa información más confidencial como contraseña o id. Los usuarios no pueden acceder a las sesiones y, por lo tanto, son más seguras.

La sesión es el sitio del servidor y la cookie es para el sitio del cliente.

Puede acceder a la información del sitio del navegador del cliente utilizando el código del sitio del servidor, luego debe depender de la cookie.

Las cookies se guardan en el lado del cliente mientras que la sesión se guarda en el servidor, el usuario puede realizar cambios en el lado del cliente, es por eso que utilizamos la sesión