2010-09-24 23 views
11

Desde cookies de sesión y se utilizan tanto para almacenar datos temporales, ¿cuál es la diferencia entre ellos?¿Son la sesión y las cookies lo mismo?

+0

¿Una cookie debe ser temporal? – JeffO

+0

@Jeff: las cookies tienden a eliminarse. Tratar los datos del lado del cliente como almacenamiento permanente es peligroso. – Brian

Respuesta

5

En cada respuesta HTTP, el servidor tiene la oportunidad de añadir una cabecera Set-Cookie: {cookie-name}={cookie-data}; {cookie-options}.

El navegador, en cada petición HTTP posterior (o según lo especificado por las opciones), agregar un encabezado Cookie: {cookie-name}={cookie-data}.

Solicitud # 1:

POST /auth/login HTTP/1.1 
Host: www.example.com 

username=Justice&password=pass1234 

Respuesta # 1:

HTTP/1.1 307 Temporary Redirect 
Set-Cookie: user_id=928 
Location: http://www.example.com/dashboard 

Petición # 2:

GET /dashboard HTTP/1.1 
Host: www.example.com 
Cookie: user_id=928 

Respuesta # 2:

HTTP/1.1 200 OK 
Content-Type: text/html 

<html> 
    <head>...</head> 
    <body>...</body> 
</html> 

Todas las solicitudes futuras también incluirán el encabezado Cookie.

+0

Como aclaración, las opciones en el encabezado de respuesta 'Set-Cookie' determinan * qué * futuras solicitudes incluyen ese encabezado' Cookie', ya sean todas las solicitudes posteriores o un cierto subconjunto de ellas. – yfeldblum

+1

Es gracioso esta es la respuesta aceptada. Si bien es una buena explicación sobre cómo nacen las cookies (aunque incompleta, ya que las cookies también se pueden establecer mediante JavaScript omitiendo así el encabezado 'Set-Cookie') ¡ni siquiera menciona las sesiones! :) –

+0

Es una respuesta parcial, pero es la parte más grande de la respuesta completa. La confusión sobre la diferencia entre las cookies y las sesiones a menudo es causada por la confusión en cuanto a qué son, exactamente, las cookies. Explique las cookies, y las preguntas dependientes a menudo se aclaran. – yfeldblum

5

Las cookies se almacenan en el cliente como pequeños archivos de texto en el sistema de archivos (cookies persistentes) o en la memoria del navegador (cookies no persistentes) y se envían al servidor y se devuelven al cliente con cada solicitud y respuesta. Las cookies persistentes seguirán estando disponibles entre las sesiones del navegador siempre que la fecha de caducidad no haya pasado. Las cookies no persistentes se perderán una vez que se cierre el navegador.
la sesión se almacenan en la memoria del servidor. Las cookies se utilizan muy a menudo como una forma de preservar la referencia a la sesión de los usuarios entre las solicitudes, sin embargo, esto también se puede hacer con los parámetros de la cadena de consulta si las cookies están deshabilitadas en el navegador de un cliente.

+0

En memoria? ___ –

+1

@Alvaro G. Vicario - en la memoria. Ya sea en la RAM asignada a la aplicación a través de su servidor web, en la memoria de almacenamiento a través de un almacén de sesión de base de datos, o en algún otro almacenamiento de RAM/Aislado relacionado con un servidor de estado de sesión. –

+0

Aparentemente, pueden estar en la memoria - http://www.cookiecentral.com/faq/#1.1 – JeffO

5

Las cookies almacenan los datos de un usuario en su computadora.

Las implementaciones de sesión almacenan los datos temporales de un usuario en un servidor (o varios servidores, según la configuración).

1

Las cookies son pequeños archivos de texto almacenados en el cliente que puede contener información específica de dominio,

una sesión se llevó a cabo del lado del servidor, ya sea en la memoria, una base de datos o un servidor separado y tecleó a través de una clave de sesión, que son significaba solo persistir para una "sesión" en la que una cookie puede persistir durante un período de tiempo o, indefinidamente, ser utilizable en múltiples sesiones.

3

Una cookie es una sesión de cliente es del lado del servidor

2

sesiones se almacenan en el servidor. Puede tener sesiones inproc, que se almacenarán en la memoria, o puede almacenar las sesiones en una base de datos SQL. Puedes leer more here.

cookies se almacenan en el ordenador del cliente. Esto significa que no se recomienda almacenar detalles importantes en una cookie, ya que los clientes podrían manipularlos fácilmente.

0

La principal diferencia entre los datos almacenados en cookies de sesión y es que los datos almacenados en la sesión se almacenan en el servidor (el usuario no puede operar en esos datos), mientras que las cookies se almacenan en un lado del cliente. Pueden ser manipulados de alguna manera por el usuario. Si tiene datos realmente confidenciales, guárdelos en sesión. Pero todos los demás datos que puede almacenar en las cookies no pueden sobrecargar el servidor.

+0

Dado que las cookies se envían con cada solicitud (incluso para imágenes y similares si usted no usa un dominio o subdominio separado para ellas), abusar de las cookies puede costar una cantidad significativa de ancho de banda adicional.Si los datos de la sesión absorben tanto espacio que el ram se está convirtiendo en un problema, me pregunto si es el momento de incluir esos datos en una base de datos, en lugar de preguntarme si puedo descargarlos al cliente. – Brian

6

En cuanto a los conocimientos de mayo:

si se establece la variable a "cookies", a continuación, sus usuarios no tendrán que entrar cada vez que entran en su comunidad.

La cookie permanecerá en su lugar dentro del navegador del usuario hasta que sea eliminada por el usuario.

Pero las sesiones se utilizan popularmente, ya que existe la posibilidad de que se bloqueen las cookies si la configuración de seguridad del navegador del usuario es alta.

Si configura la variable como "sesiones", la actividad del usuario se rastreará con las sesiones del navegador, y los usuarios deberán iniciar sesión cada vez que vuelvan a abrir su navegador. Además, si está utilizando la variable "sessions", necesita asegurar el directorio "sessions", ya sea colocándolo sobre la raíz web o solicitando que su host web lo convierta en un directorio no navegable.

La diferencia clave radica en que las cookies se almacenan en el disco duro, mientras que una sesión no se almacena en el disco duro. Las sesiones son básicamente como tokens, que se generan en la autenticación. Una sesión está disponible siempre que se abra el navegador.

esperanza siguientes enlaces aclarar aún más sus dudas

http://wiki.answers.com/Q/What_is_the_difference_between_session_and_cookies http://www.allinterview.com/showanswers/74177.html

+1

Tenga en cuenta que la clave de sesión tiende a almacenarse en las cookies de un usuario. Cuando el sitio necesita determinar a qué sesión corresponde una solicitud de página específica, generalmente se busca según las cookies del usuario. – Brian

+0

muchas gracias por su comentario No lo sabía. –

+0

Puede suceder que si la sesión no es para matar, el usuario no necesita iniciar sesión. Simblar a las cookies que ha escrito anteriormente. Entonces, ¿cuándo se eliminan las cookies y cuándo se elimina la sesión? – Shalni

2

Ellos no son la misma cosa. Una sesión es un concepto mediante el cual se almacena el estado de la sesión de navegación de un solo usuario.

Las cookies son un buen medio para implementar este concepto, por lo tanto, la práctica generalizada de "cookies de sesión".

Cuestiones relacionadas