Django中的几种会话技术小结(cookie、session、token)

## 一次请求的周期

    – 客户端向服务器发送数据  Request

              – 主动操作

    – 服务端向客户端发送数据  Response

              – 响应操作

              – 没有请求,就不会有响应

    – 从Request 到 Response结束

### 会话技术

– 为什么出现,有啥作用?

  – 因为Http协议是一个无状态协议,两次登录之间没有任何联系,想让它们之间有关系,就有了会话技术。

  – 相当于变相延长了请求周期

  – 保存了用户的关键信息

(1)客户端会话技术——cookie

  – 数据存储在客户端的

  – 数据存储形式是: key-value,也就是键–值的格式。

  – Cookie隔离

            – 不同的域名、不同的ip之间cookie是隔离的,不可能你在这个浏览器登录之后,另一个浏览器会有记录。

            – 游戏浏览器

 – 支持过期时间

             – 默认关闭浏览器即失效

             – max-age 指定过期时间,默认单位是秒,这样关闭浏览器也不会失效。

             – None 不过期

             – experis 时间戳

《Django中的几种会话技术小结(cookie、session、token)》

(2)服务端会话技术——session

  – 数据存在服务器

  – Session依赖于Cookie

 – Session存储

              – Session存储在内存中

              – Django里将Session持久化到数据库中了

  – django_session表中存在三个字段

              – session_key 主键

              – session_data 数据,使用BASE64编码做了一个简单的数据安全

              – session_experis  过期时间,django中默认两周

– Session 退出

              – 删 cookie

              – 删 session

              – 两个一起彻底删掉

#### Cookie 和 Session区别

– 数据存储位置不一样

– Session相对来说更安全

              – Cookie 传输明文,相对来说不安全

– Cookie默认不支持中文

  – 编码解码

– Session 依赖于Cookie

《Django中的几种会话技术小结(cookie、session、token)》

(3)服务端会话技术——Token  (自定义的session)

– 服务端会话技术

– 自定义的Session

  – 主要用在移动端

  – 如果Token用在Web上,建议还是使用Session

  – 如果用在专属客户端上,我们建议手动管理Token

– Token用法

  – 直接在用户表中添加一字段,字段用来存储用户的Token值

  – 将Token存储在缓存中

#### 用户系统

– 用户中心

– 用户注册

– 用户登录

– 用户退出

#### MD5(哈希算法的一类)

– 是一种信息摘要算法,常用在信息安全领域,它是把信息处理成长度固定的数据。

– 特性

              – 单向不可逆

              – 输出长度固定,是128位的二进制

              – 为了人们可以看懂,转化成了Unicode码, Unicode码存储的时候是十六进制,所以是32位Unicode码,也就是32位的字符串

              – 抗爆破能力强

              – 原数据只要发生任何变更,md5都会发生很大的变化

#### 扩展:

– 使用Cookie存储中文

    原文作者:佐卡ww
    原文地址: https://www.jianshu.com/p/76bd103fd904
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞