请求周期
- 客户端向服务器发送数据 Request
- 主动操作
- 服务端向客户端发送数据 Response
- 响应操作
- 没有请求,就不会有响应
- 从Request 到 Response结束
会话技术
- 为什么出现,有啥作用
- 请求周期
- request
- response
- Http的请求都是短连接
- 变相延长了请求周期
- 保存了用户的关键信息
客户端会话技术
- 数据存储在客户端的
- Cookie
- 数据存储 key-value
- 支持过期
服务端会话技术
Cookie
- Cookie隔离
- 游戏浏览器
过期时间
- 关闭浏览器即失效
- max_age 指定过期时间,默认单位是秒
- None 不过期
- 0 关闭即过期(目前不好用)
还有一种 experis : expires=timedelta(days=14)
- 和max_age相比,它支持时间戳,时间差
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
Token
- 会话技术
- 服务端会话技术
- 自定义的Session
- Token
- 移动端火的时候
- 如果Token用在Web上,建议还是使用Session
- 如果用在专属客户端上,我们建议手动管理Token
- Token用法
- 直接在用户表中添加一字段,字段用来存储用户的Token值
- 将Token存储在缓存中
用户系统
- 用户中心
- 用户注册
- 用户登录
- 用户退出
MD5
- 信息摘要算法
- 哈希算法
- 杂凑算法
- 特性
- 单向不可逆
- 输出长度固定
- 128位的二进制
- Unicode 存储的时候十六进制
- 四位二进制转换成一个十六进制
- 32位16进制,32位Unicode
- 32位的字符串
- 抗爆破能力强
- 指纹用法验证数据完整,原数据只要发生任何变更,md5都会发生很大的变化
homework
- 使用Cookie存储中文
- 完成登录