python Django中的cookies和session会话保持技术

文章讲述了cookies和session作为会话管理的技术手段,分别在客户端和服务器端存储数据以保持会话状态。cookies以键值对形式存储,有生命周期限制,数据随每次请求发送,可能影响响应速度。session则在服务器端存储,通过cookie中的sessionnid识别,不同请求者间数据不共享。Django中的session配置和使用,以及面临的如数据量增长等问题也进行了讨论。
摘要由CSDN通过智能技术生成
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把数据存在浏览器上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑马金牌编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值