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

原文地址:https://www.cnblogs.com/Paul-watermelon/p/10764899.html