django的会话

一次请求的周期

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

          - 主动操作

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

          - 响应操作

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

- 从Request 到 Response结束

会话技术

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

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

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

    • 保存了用户的关键信息

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

  • 数据存储在客户端的

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

  • Cookie隔离

        - 不同的域名、不同的ip之间cookie是隔离的,不可能你在这个浏览器登录之后,另一个浏览器会有记录。
    
        - 游戏浏览器
    
  • 支持过期时间

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

[图片上传失败...(image-e752b8-1534668310822)]

(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

[图片上传失败...(image-e4651a-1534668310822)]

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

  • 服务端会话技术

  • 自定义的Session

    • 主要用在移动端

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

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

  • Token用法

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

    • 将Token存储在缓存中

用户系统

  • 用户中心

  • 用户注册

  • 用户登录

  • 用户退出

MD5(哈希算法的一类)

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

  • 特性

            - 单向不可逆
    
            - 输出长度固定,是128位的二进制
    
            - 为了人们可以看懂,转化成了Unicode码, Unicode码存储的时候是十六进制,所以是32位Unicode码,也就是32位的字符串
    
            - 抗爆破能力强
    
            - 原数据只要发生任何变更,md5都会发生很大的变化
    

你可能感兴趣的:(django的会话)