我认为他们是一回事,但我的老板说这是不对的。有人可以解释这个区别吗?
答案 0 :(得分:22)
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.
答案 1 :(得分:7)
Cookie不是Django或Python特定技术。 Cookie是一种在客户端浏览器中存储一小部分状态的方法。它用于补充(或破解,取决于您的观点)HTTP,这是一种无状态协议。这里有各种各样的限制,其他域名无法读取您的cookie,您只能存储几k数据(具体取决于浏览器!)等等。
Cookie可用于存储会话密钥。会话是存储服务器端的用户状态的集合。会话密钥被传递回服务器,这允许您查找该会话的状态。大多数Web框架(不仅仅是Django)都内置了某种会话概念。这使您可以将服务器端状态添加到HTTP会话中。