python Django中的cookies和session会话保持技术
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
cookies和session都是为了保持会话状态而诞生的两个存储技术
会话定义:
从打开浏览器访问一个网站到关闭浏览器结束此次访问称之为一次会话
HTTP协议是无状态的导致会话状态难以保持
Cookies-定义
cookies是保存在客户端浏览器上的存储空间
Cookies特点
cookies在浏览器上是以键-值对的形式进行存储的键和值都是一ASCLL字符串的形式存储(不能是中文字符串
存储的数据带有生命周期
cookies中的数据是按域存储隔离的不同的域之间无法访问
cookies的内部的数据会在每次访问此网址时都会携带到服务器端如果cookies过大会降低响应速度。
Cookies的使用-存储
存储示例
案例:
会话保持 - 登录流程
session定义
session是在服务器上开辟一段空间用于保留浏览器和服务器交互时的重要数据
实现方式:
-
使用session需要在浏览器客户端启动cookie且在cookie中存储sessionnid
-
每个客户端都可以在服务器端有一个独立的session
-
注意:不同的请求者之间不会共享这个数据与请求者一一对应
session初始配置
settings.py中配置session
1、向INSTALLED_APPS列表中添加:
2、向MIDDLEWARE列表中添加:
session的使用
session对像是一个类似与字典的SessionStore类型的对象可以用类似于字典的方式进行操作。
session能够存储如字符串整型字典列表等
settings.py中相关配置项
注意:Django中的session数据存储在数据中所以使用session前需要确保已经执行过migrate
Django session的问题
1、django_session表是单表设计;且该表数据量持续增持【浏览器故意删掉sessionid & 过期数据为删除】
2、可以每晚执行python3 manage.py clearsessions 【该命令可删除已过期的session数据】
session与cookies对比
session把数据存在服务器上cookies把数据存在浏览器上