一次请求的周期
- 客户端向服务器发送数据 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都会发生很大的变化