【发布时间】:2011-12-23 00:20:15
【问题描述】:
我想使用 Zend 框架的 remeberMe() 函数为用户创建持久的登录体验。 以下是我对 Sessions 的了解:
1-当用户登录网站时,会在文件系统的服务器上为他创建一个会话。
2-在客户端生成一个会话 cookie,保存会话的标识符。
3-如果用户关闭浏览器,会话 cookie 将被删除,而服务器上的会话将持续到垃圾收集器删除会话文件(在 gc_maxlifetime 设置的时间之后)。 p>
4- 如果用户长时间打开浏览器(超过 gc_maxlifetime),垃圾收集器将删除会话文件,而会话 cookie 将持续到浏览器关闭时被删除.
现在 Zend 框架的 rememberMe() 函数究竟做了什么?
a- 它是否会在浏览器中创建一个会话 cookie,该会话 cookie 会持续调用它指定的时间?
b- 是否会增加存储在服务器上的会话文件的生命周期,以便垃圾收集器不会删除该文件?
c- 如果它不影响服务器上的会话文件,那么当会话在服务器端过期但会话 cookie 仍然可用时会发生什么?会被当场删除还是解除直到自动过期?
提前致谢。
【问题讨论】:
-
1) 通常它们存储在内存中。 2) 它也可以通过 URL 参数访问(例如,如果 cookie 被禁用)。 3)cookie和session的生命周期是分开的设置,与GC本身无关;关闭浏览器通常不会删除 cookie 4) 再次,会话的过期计时器与 GC 无关
标签: php zend-framework session cookies session-cookies