2011-02-25 26 views

回答

18

Cookie是客户端浏览器上的一个东西,仅仅是对Session的引用,默认情况下它会存储在数据库中。

该cookie存储一个随机ID并且不存储任何数据本身。会话使用cookie中的值来确定数据库中哪些Session属于当前浏览器。

这与直接在cookie上写入信息非常不同。

实施例:

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

检查[this](http://stackoverflow.com/questions/6353703/session-cookie-some-misunderstandings) – Jibin 2011-06-21 05:29:09

+0

'SessionStorage'和'CookieStorage'在这里有什么区别:https://docs.djangoproject。 com/en/dev/ref/contrib/messages/#configure-the-message-engine - 他们不是替代方式来保存数据。但是你说cookie不会自己存储数据。 – Medorator 2014-06-13 17:13:24

+0

@buffer,默认情况下,SessionStorage中的cookie包含数据库中数据存储的ID。 – 2014-06-13 18:05:03

6

Cookie是不一个Django或Python特定的技术。 Cookie是在客户浏览器中存储少量状态的一种方式。它被用来补充(或根据你的观点进行破解)HTTP,这是一种无状态协议。这里有各种各样的限制,其他域不能读取你的cookies,你只能存储几k个数据(只取决于浏览器!)等等等等。

一个cookie可以用来存储会话密钥。会话是存储在服务器端的用户状态的集合。会话密钥被传回到服务器,这使您可以查找该会话的状态。大多数Web框架(不仅仅是Django)都会内置某种会话概念。这使您可以将服务器端状态添加到HTTP对话中。

相关问题