2011-02-25 7 views

Respuesta

18

Una cookie es algo que se encuentra en el navegador del cliente y es simplemente una referencia a un Session que, de forma predeterminada, está almacenado en su base de datos.

La cookie almacena una identificación aleatoria y no almacena ningún dato. La sesión usa el valor en la cookie para determinar qué Session de la base de datos pertenece al navegador actual.

Esto es muy diferente de escribir información directamente en la cookie.

Ejemplo:

httpresponse.set_cookie('logged_in_status', 'True') 
# terrible idea: this cookie data is editable and lives on your client's computer 


request.session['logged_in_status'] = True 
# good idea: this data is not accessible from outside. It's in your database. 
+0

Compruebe [this] (http://stackoverflow.com/questions/6353703/session-cookie-some-misunderstandings) – Jibin

+0

¿Cuál es la diferencia entre 'SessionStorage' y' CookieStorage' aquí: https: //docs.djangoproject. com/en/dev/ref/contrib/messages/# configuring-the-message-engine - ¿No son formas alternativas de guardar datos? Sin embargo, usted dice que la cookie no almacena los datos en sí. – Medorator

+0

@buffer, con SessionStorage, el valor predeterminado, la cookie contiene una ID para un almacén de datos en la base de datos. –

6

Una cookie no es un Django, o tecnología específica Python. Una cookie es una manera de almacenar un poco de estado en el navegador de su cliente. Se usa para complementar (o piratear, dependiendo de su punto de vista) HTTP, que es un protocolo sin estado. Aquí hay todo tipo de limitaciones, otros dominios no pueden leer sus cookies, solo puede almacenar unos pocos datos (¡cuánto depende del navegador!), Etc.

Se puede usar una cookie para almacenar una clave de sesión. Una sesión es una recopilación del estado del usuario almacenado en el servidor. La clave de sesión se devuelve al servidor, lo que le permite buscar el estado de esa sesión. La mayoría de los marcos web (no solo Django) tendrán incorporado algún tipo de concepto de sesión. Esto le permite agregar el estado del servidor a una conversación HTTP.

Cuestiones relacionadas