码迷,mamicode.com
首页 > 其他好文 > 详细

django之session

时间:2018-11-22 00:20:19      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:后台服务   style   服务器端   mil   缓存   产生   安全   关闭   put   

HTTP协议是无状态的:
? 每次请求都是一次新的请求,不会记得之前通信的状态
? 客户端与服务器端的一次通信,就是一次会话
? 实现状态保持的方式:在客户端或服务器端存储与会话有关的数据
? 状态保持的目的是在一段时间内跟踪请求者的状态,可以实现跨页面访问当前请求者的数据
? 不同的请求者之间不会共享这个数据,与请求者一一对应


Cookie
? 存储在用户的浏览器中,用户提交的数据具有‘欺骗性‘,所以cookie不是很安全
?单个cookie保存的数据不能超过4K


Session
? 存储在服务器(文件,数据库,缓存|内存)
? 每一个数据产生一个key session_id 就存储在浏览器的cookie
? 数据存在服务器,不容易被暴露信息,比cookie更安全.

 

cookie:包括名字,值,过期时间,路径和域;

①.会话cookie:如果cookie不设置过期时间,则会话cookie会被保存在浏览器内存中,生命周期为浏览器会话期间,当关闭浏览器时,cookie就会被删除.

②.持久cookie:设置了过期时间的cookie会被保存在硬盘里,关闭浏览器后再次打开cookie依然有效,直到超过有效时间

 

Session:客户端浏览器访问服务器,服务器检查会话是否已有sessionid,没有则新建一个唯一不重复的sessionid,在本次响应中返回给客户端cookie里保存起来.

Session是用Sessionid来确定当前对话所对应的服务器Session,而Sessionid是通过Cookie来传递的,禁用Cookie相当于失去了Sessionid,也就得不到Session了。当cookie被禁用时,可以使用URL重写,将sessionid附加在URL路径的后面;或者给表单添加一个input设置为hiddle,将value的值设置为sessionid,提交到后台服务器.

 

 

使用cookie

 # 获取当前的 响应对象

 response = HttpResponse(‘cookie的设置‘)

 # 使用响应对象进行cookie的设置

 response.set_cookie(‘a‘,‘abc‘)

 # 返回响应对象

 return response

获取cookie

a = request.COOKIES.get(‘a‘,None)

 

session的设置方法:

request.session[‘键’]= {}或=字符串

request.session[‘VIPUser’] = {“uid”:”10086”,”name”:”张三”}
request.session[‘admin’] = ‘aabbcc’

session的获取方法:

request.session.get(‘VIPUser’)

request.session.get(‘admin’)

session的删除方法

删除单个key

del request.session[‘a’]

清除所有会话,但不会删除数据

request.session.clear()

删除当前的会话数据

request.session.flush()

设置session10秒后过期

 # request.session[‘abc‘] = ‘abcdef‘   

 # request.session.set_expiry(10)

django之session

标签:后台服务   style   服务器端   mil   缓存   产生   安全   关闭   put   

原文地址:https://www.cnblogs.com/cage0515/p/9998139.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!