PHP会话ID—SID的有效期有多长?

PHP会话ID—SID的有效期有多长?,php,session,cookies,timeout,lifetime,Php,Session,Cookies,Timeout,Lifetime,理论上,如果PHP会话ID存储在生存期为365天的cookie中,会话ID是否会在第365天恢复正确的会话数据,或者是否会由于会话生存期设置而超时/删除相关的会话数据 我可以/应该存储和使用会话ID多长时间?理论上,您可以存储它,只要您愿意,但您将不必要地耗尽资源。默认值为20分钟,可以在php.ini中通过设置session.gc\u maxlifetime参数进行调整。如果您需要将数据保存更长的时间,将其放入数据库而不是会话中是有意义的。会话id的最后一个与session.gc\u maxl

理论上,如果PHP会话ID存储在生存期为365天的cookie中,会话ID是否会在第365天恢复正确的会话数据,或者是否会由于会话生存期设置而超时/删除相关的会话数据


我可以/应该存储和使用会话ID多长时间?

理论上,您可以存储它,只要您愿意,但您将不必要地耗尽资源。默认值为20分钟,可以在
php.ini
中通过设置
session.gc\u maxlifetime
参数进行调整。如果您需要将数据保存更长的时间,将其放入数据库而不是会话中是有意义的。

会话id的最后一个与
session.gc\u maxlifetime
相同。检查
php.ini
phpinfo()
查看您的设置,默认设置为1440秒(24分钟)。虽然如果您关闭浏览器,并且没有通过cookie或其他方式恢复会话id,会话仍然会关闭

理论上,如果PHP会话ID存储在生存期为365天的Cookie中,会话ID是否会在第365天恢复正确的会话,或者相关会话是否会因会话生存期设置而超时

cookie只存储将标识会话的会话id

如果存在与该id对应的会话文件,则会话将继续–否则,将创建具有该id的新空会话

session.gc\u maxlifest
选项的名称有点错误,实际上它是一个最小的生命周期。如果此时间跨度在上次访问会话文件后已过,则允许会话垃圾回收器从磁盘上擦除该文件,但不能保证立即执行,因为垃圾回收器是随机调用的(也可以配置每个请求的概率)

我可以/应该存储和使用会话ID多长时间

只要你需要它


这取决于您尝试执行的操作、会话的配置方式等。

在关闭浏览器之前,除非您将Cookie与会话一起使用请参见Cookie生存期(客户端)与会话生存期(服务器端)不同,否则关闭浏览器的时间不得超过此时间。