python_Django09----Cookie,Session,Token

会话技术

  • 出现场景
    - 服务器如何识别客户端
    - Http 在 Web 开发中基本都是短连接
  • 请求生命周期
    - 从 Request 开始
    - 到 Response 结束
  • 种类
    - Cookie
    - 客户端会话技术
    - 数据存储在客户端
    - 键值对存储
    - 支持过期时间
    - 默认 Cookie 会自动携带,本网站所有 Cookie
    - Cookie 跨域名,跨网站
    - 通过 HttpResponse
    - Cookie 默认不支持中文
    - 可以加盐
    - 加密
    - 获取的时候需要解密 在这里插入图片描述response.set_cookie ( key , value , max_age = None , exprise = None )
    max_age : 整数,指定 cookie 过期时间
    exprise : 整数,指定过期时间,还支持是一个 datatime 或 timedelta ,可以指定一个具体的过期时间
    max_age 和 expries 两个选一个指定

过期时间的几个关键时间
max_age 设置为0浏览器关闭失效
设置为 None 永不过期
expries = timedelta(days = 10) 10天后过期

	 - Session
	 		- 服务端会话技术
	 		- 数据存储在服务器中
	 		- 默认 Session 存储在内存中
	 		- Django 中默认会把 Session 持久化到数据库中
	 		- Django 中 Session 的默认过期时间是14天
	 		- 主键是字符串
	 		- 数据是使用了数据安全
	 				- 使用的 base64
	 				- 在前部添加了一个混淆串
		    - Session 依赖于 Cookie

在这里插入图片描述Session 常用操作
get(key , default = None)根据键获取会话的值
clear() 清除所有会话
flush() 删除当前的会话数据并删除会话的 cookie
delete request[“session_id”] 删除会话
session.session_key 获取 session 的 key
设置数据
request.session[‘user’] = username
数据存储到数据库中会进行编码使用的是 Base64

	 - Token
			 -  服务端会话技术
			 - 自定义 Session
			 - 如果 Web 页面开发中,使用起来和 Session 基本一致
			 - 如果使用在移动端或客户端开发中,通常以 json 形式存储,通常移动端自己存储 Token ,需要获取 Token 关联数据的时候,主动传递 Token

Cookie,Session 和 Token 对比

  • Cookie 使用更简洁,服务器压力更小,数据不是很安全
  • Session 服务器要维护 Session ,相对安全
  • Token 拥有 Session 的所有优点,自己维护略微麻烦,支持更多的终端
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值