c# - sesion - ¿Cuál es la diferencia entre una sesión y una cookie?
manejo de sesiones en php (8)
Es posible tener ambos: una clave principal de la base de datos se procesa y se almacena en una tabla de búsqueda: luego el hash se almacena en el cliente como una cookie. Una vez que se envía la cookie hash (hahhahaha :), se busca su clave principal correspondiente, y el resto de los detalles se asocian a ella en otra tabla en la base de datos del servidor.
¿Cuál es la diferencia entre una sesión y una cookie?
¿Qué circunstancias se deben usar?
La sesión es un objeto del lado del servidor, que transfiere o accede a los datos entre llamadas de la página.
Cookies es un objeto que es la máquina cliente / cliente que almacena cierta información de texto del navegador y el servidor.
Las sesiones no dependen del usuario que permita una cookie. En su lugar, funcionan como un token que permite el acceso y la transmisión de información mientras el usuario tiene su navegador abierto. El problema con las sesiones es que cuando cierras tu navegador también pierdes la sesión. Por lo tanto, si tiene un sitio que requiere un inicio de sesión, esto no podría guardarse como una sesión como podría hacerlo como una cookie, y el usuario se vería obligado a volver a iniciar sesión cada vez que visite.
Parece haber cierta confusión con respecto a lo que es una cookie de sesión.
En primer lugar, cuando hablamos de cookies de sesión, no tiene nada que ver con las sesiones de ASP.Net. Del mismo modo, las cookies de sesión no tienen nada que ver con los procesos del lado del servidor o el almacenamiento en caché.
Una cookie de sesión no es más que una cookie que caduca cuando caduca la sesión del navegador. Para crear una cookie de sesión, no coloque una fecha de caducidad en ella. Al hacerlo, almacena la cookie en la memoria y se desecha cuando se elimina el navegador.
Una cookie es una cadena de identificación almacenada por un servidor (que tiene un dominio) en el navegador del usuario que visita el servidor / dominio.
Una sesión es una unidad de tal vez variables, estado, configuraciones mientras que cierto usuario está accediendo a un servidor / dominio en un marco de tiempo específico. Toda la información de la sesión está en el modelo tradicional almacenado en el servidor (!)
Debido a que muchos usuarios concurrentes pueden visitar un servidor / dominio al mismo tiempo, el servidor debe ser capaz de distinguir muchas sesiones simultáneas diferentes y siempre asignar la sesión correcta al usuario correcto. (Y ningún usuario puede "robar" la sesión de otro usuario)
Esto se hace a través de la cookie. La cookie que se almacena en el navegador y que en este caso debe ser una combinación aleatoria como s73jsd74df4fdf (por lo que no se puede adivinar) se envía en cada solicitud del navegador al servidor, y el servidor puede asignar y usar la sesión correcta para sus respuestas (páginas vistas)
La cookie permite que el servidor reconozca el navegador / usuario. La sesión permite que el servidor recuerde información entre diferentes vistas de página.
Cookie es un almacenamiento del lado del cliente de sus variables. Se almacenó físicamente en la máquina del cliente por el navegador. Su alcance es toda la máquina. Diferentes usuarios en la misma máquina pueden leer la misma cookie.
Debido a esto :
- No debe almacenar datos confidenciales en una cookie.
- No debe almacenar datos que pertenecen a una cuenta de usuario.
- Cookie no tiene efecto en los recursos del servidor.
- La cookie vence en la fecha especificada por usted.
La sesión es un almacenamiento del lado del servidor de sus variables. Por defecto, está almacenado en la memoria del servidor. Pero puede configurarlo para almacenar en SqlServer. Su alcance es todo el navegador. El mismo usuario puede ejecutar dos o más navegadores y cada navegador tiene su propia sesión.
Debido a esto :
- Puede guardar datos confidenciales en la sesión.
- No deberías guardar todo en sesión. es un desperdicio de recursos del servidor.
- Después de que el usuario cierra el navegador, el tiempo de espera de la sesión borra toda la información. (predeterminado es 20 minutos)
Sesiones
Sessions se almacenan por usuario en la memoria (o en un estado de Sessions alternativo) en el servidor. Las sesiones usan una cookie ( clave de sesión ) para vincular al usuario a la sesión. Esto significa que no se almacenan datos "confidenciales" en la cookie en la máquina de los usuarios.
Sessions generalmente se usan para mantener el estado cuando navega por un sitio web. Sin embargo, también se pueden usar para mantener objetos accedidos comúnmente. Solo si el estado de sesión se establece en InProc, si se establece en otro modo de estado de sesión, el objeto también debe ser serializable.
Session["userName"] = "EvilBoy";
if(Session["userName"] != null)
lblUserName.Text = Session["userName"].ToString();
Galletas
Cookies se almacenan por usuario en la máquina de los usuarios. Una cookie generalmente es solo un poco de información. Las cookies se utilizan generalmente para la configuración de usuario simple preferencias de colores ect. Ninguna información sensible debe almacenarse en una cookie.
Nunca se puede confiar plenamente en que una cookie no ha sido alterada por un usuario o una fuente externa. Sin embargo, si la seguridad es una gran preocupación y debe usar cookies, puede encriptar sus cookies o configurarlas para que solo se transmitan a través de SSL. Un usuario puede borrar sus cookies en cualquier momento o no permitir las cookies por completo, por lo que no puede contar con que estén allí simplemente porque un usuario haya visitado su sitio en el pasado.
//add a username Cookie
Response.Cookies["userName"].Value = "EvilBoy";
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(10);
//Can Limit a cookie to a certain Domain
Response.Cookies["domain"].Domain = ".com";
//request a username cookie
if(Request.Cookies["userName"] != null)
lblUserName.Text = Server.HtmlEncode(Request.Cookies["userName"].Value);
nota al margen
Vale la pena mencionar que ASP.NET también admite cookieless estatal sin cookieless
La principal diferencia entre las cookies y las sesiones es que las cookies se almacenan en el navegador del usuario y las sesiones no. Esta diferencia determina para qué se usa mejor cada uno.
Una cookie puede mantener la información en el navegador del usuario hasta que se elimine. Si una persona tiene un nombre de usuario y contraseña, esto se puede configurar como una cookie en su navegador para que no tenga que volver a iniciar sesión en su sitio web cada vez que lo visite. Puede almacenar casi cualquier cosa en una cookie del navegador.