我一直在阅读一些关于 Connect 和 Express 的源代码,了解如何管理会话。我仍在学习会话的基础知识,但我不明白内存是如何处理的。
我知道服务器将会话数据保存在内存中并使用会话 ID 来访问数据。服务器发送保存 id 的 cookie(我猜是会话 cookie?),当用户访问该站点时,会再次使用会话。
这是一个愚蠢的问题,但我的问题是,如果用户删除他的 cookie 或在不更新会话超时的情况下过期,如何管理内存?数据会永远保留在内存中吗?
我研究了 PHP 和其他语言,并看到了有关它们如何清理会话的文档。他们似乎有一个垃圾收集器(扫描并删除过期的会话)。 Connect/Express 有此功能吗?
连接MemoryStore
(默认的会话存储模块Session
中间件)将not垃圾收集过期的会话。它仅在它们过期时检查它们的过期时间accessed(此时它will如果会话过期,则删除存储),因此,如果用户清除其 cookie,则会话将永远不会再次被访问,并且永远不会从MemoryStore
. Hence 的警告Session中间件文档 http://www.senchalabs.org/connect/session.html#warning that MemoryStore
不应该在生产中使用。
Connect 不提供其他会话存储模块,并希望您在抽象的基础上提供自己的会话存储模块Store
模块包含在Session
中间件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)