python关闭浏览器、未过期的session_session.cookie_lifetime = 0时,为什么会话在浏览器关闭时不会过期?...

本文探讨了HTTP无状态特性下,浏览器与服务器如何通过Cookie和会话数据保持连接状态。重点讨论了会话数据保留时间及浏览器关闭后再次访问同一会话的问题。
Python3.9

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

我打算将此作为对亚历山大的优秀答案的评论,但它会变得有点冗长。

cookie在浏览器中保留多长时间以及服务器在没有请求的情况下保留会话数据的时间是2个单独且独立的事情。由于HTTP的无状态特性,无法避免这种情况 - 尽管您可以采取一些措施来缓解您认为的安全漏洞。

对于浏览器在关闭后访问同一会话并且有一些延迟,它要求浏览器保留会话cookie(Alexander已经解释过)并且服务器保留了会话数据。

您描述的行为在处理少量请求的系统上可能会更加明显,并且会话处理程序不会验证sesion数据的TTL(我不确定默认处理程序是否执行,或者它们是否只是假设任何未删除的会话数据被视为当前数据。

您没有提供有关如何配置2台服务器的任何详细信息,尤其是session.gc_maxlifetime。

如果session.gc_maxlifetime在请求之间已经过期但会话数据仍然可访问,则这意味着会话处理程序仅将此视为会话被认为有资格进行垃圾收集的时间(从语义上讲,这是配置选项的用途) )。然而,有一个强有力的理由将此值视为TTL。要解决此问题,您可以强制垃圾收集更频繁地运行并删除会话数据,或使用会话处理程序忽略早于指定限制的会话数据。

您看到两个系统之间的差异可能是由于session.gc_maxlifetime的值不同或垃圾收集频率的差异甚至是不同的会话处理程序。

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值