Django Cookie和Session
1. Cookie 和 Session
1.1Cookie
Cookie的由来?
因为HTTP请求是没有状态的,每一次请求都是独立的(对于服务端来说 一切都只如初见!)
Cookie是什么?
就是保存在浏览器上的键值对
服务端控制着响应,在响应里可以让浏览器在本地保存(键值对)Cookie
下一次请求在发送的时候就会自动携带这个cookie值
Cookie的应用:
1.登录、七天免登录
2.记录用户的浏览器习惯
3.简单的投票限制
Cookie是服务端设置的,我们浏览器可以不让服务端设置Cookie(禁用Cookie)
Cookie默认关闭浏览器就失效了
在django响应中,设置cookie
2.Session
Session 是什么?
是保存在服务端的键值对
Session必须依赖于Cookie
fdsfs: {"is_login": 1, "user": "xiaohei"}
jbjfjg: {"is_login": 1, "user": "xiaohei"}
Django 中Session做的事情:
存Session( request.session['username']='Paul' ):
1. 在服务端生成随机字符串,
2. 生成一个和上面随机字符串对应的大字典,用来保存用户的数据
3. 随机字符串当成Cookie返回给浏览器
取Session( request.session.get('username', None) ):
1. 从请求携带的Cookie里面找到随机字符串
2. 拿到随机字符串去session中找对应的大字典
3. 从大字典中根据key取值
Session的优势:
1. 比Cookie能存的数据多
2. 安全性好,数据都保存在服务端
Session的缺点:
1. Session数据量大,会占用一些资源
参考:
http://www.cnblogs.com/liwenzhou/p/8343243.html