勤杂工

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

1cookie产生的原因

a、http的请求是无状态的,用户在浏览器中输入了用户名密码对服务端做请求时,服务端不会保存当前的用户信息,当下一次用户做请求时,服务器依然不知道当前用户

b、所以为了解决这样的问题,需要将用户信息保存在本地浏览器中,下次浏览器去做请求时,浏览器会带上用户信息一并发送给服务器,服务器通过浏览器携带的cookie信息就能知道当前的用户信息

 

2session产生的原因:

a、session和cookie类似,都是为了保存敏感数据,不同的是,cookie保存在浏览器,而session保存在服务器,session还可以设置有效期

b、session通过加密后更加安全,而cookie保存在浏览器中不是很安全

 

3falsk中session机制

1falsk中用户第一次去请求服务器时,服务端会将当前的用户信息做加密,并且生成session,同时将session产生的session_id返回给浏览器,保存在cookie中

2下次浏览器再次向服务器请求时会将cookie带上,服务器就能通过cookie中的session_id解密知道当前的用户信息

3flask机制中session不保存在服务器,而是直接将session_id保存在浏览器的cookie中,节省了服务器的资源空间

4安全是相对的,虽然flask中cookie保存在浏览器中,但是cookie存储的是加密后的session_id ,想要破解也有难度

 

4flask中session的操作

a、session的增加,操作session和操作词典是一样,先导入session对象(import session ),session['username']='zhiliao',在新增session前需要secret_key 

在配置文件中设置随机24位字符串

app.config['SECRET_KEY']=os.urandom(24)

b、设置session值,session['username']='zhiliao'

 设置session的过期时间,

session.permanent = True,表示session的时间为31天
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(hour=2) 表示session有效期为2小时
注意点:在设置permanent_session_lifetime 时必须将 session.permanent设置为true ,否则在关闭浏览器时session就会失效

c、获取session值,session.get('username')

d、删除session值,session.pop('username')

f、清除所有session值,session.clear()这个会清除session中所有键值对

 

posted on   勤杂工  阅读(670)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
 
点击右上角即可分享
微信分享提示