Django组件 cookie/session

一、Django组件 - cookie

会话跟踪技术

   由于HTTP协议是无状态的,所以没有办法保持会话,基于这种状况,浏览器发展出了cookie技术,通过cookie就能够完成持续对话,大致过程就是类似于一个字典的东西,从客户端浏览器访问服务时,带着这个字典,那么后端服务器就能够身份认证的标识后者一些其他信息。类似于二次登陆的免登陆认证机制。

   Cookie是key-value结构,类似于python中的字典。随着服务器端的响应发送给客户端浏览器。

 

cookie规范

    •  Cookie大小上限为4KB;
    • 一个服务器最多在客户端浏览器上保存20个Cookie;
    • 一个浏览器最多保存300个Cookie;

 

   每一个客户端浏览器,都有一个cookie容器。

   cookie:针对一个服务器,保存在客户端某一个浏览器上的key-value存储的数据结构中

 

   服务器有权利向浏览器写入cookie

   一旦写入cookie,那么下次访问,会带着cookie去访问服务器

 

   比如电脑的谷歌浏览器和火狐浏览器,各自有独立的cookie容器,不能互相访问!

 

 

django中的cookie语法

   设置cookie

     1.创建对象 obj=render(request,"xxx")/HttpResponse("xxx")/redirect("xxx") 凭情境三选一

     2.为对象赋值 obj  obj_set_cookie("键",值)

     3.返回对象 return obj   PS:因为数据存在了对象里,因此不返回对象的话下一步读不出来

   获取cookie

     request.COOKIES

     request.COOKIES.get("键")

 

 

 

 二、Django组件 - session

django中的session语法

   设置session

     request.session[key1]=value1

     request.session[key2]=value2

   过程

     1.生成一个随机字符串xxxx

     2.key1:value1,key2:value2 -- 加密,然后放到djangosession表中xxxx 加密后的数据 过期日期(14d)

     3.设置cookie,将随机字符串(那个钥匙) ret.set_cookie(ssessionid,随机字符串,)  

   查询:

     request.session[key1]

     request.session.get(key1)

   删除

     request.session.flush()

posted @ 2019-06-03 10:05  神秘海螺  阅读(92)  评论(0编辑  收藏  举报