一、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()