【问题标题】:When does a web session start and end?网络会话何时开始和结束?
【发布时间】:2013-09-26 23:15:48
【问题描述】:

这更像是一个概念性问题。但我想知道使用 PHP 时网络会话何时开始和结束。我很确定会话在用户第一次请求任何具有 session_start() 函数的页面时开始。但是,当用户导航到同一选项卡中的另一个页面时,会话是否结束?是否在同一浏览器的多个选项卡和窗口中保留了相同的会话?要在浏览器关闭后保留会话,是否必须使用 cookie?

【问题讨论】:

  • 会话使用 cookie(“会话 cookie”,通常由浏览器以不同方式处理)。您可以检查它以查看会话将持续多长时间。通常,浏览器会在浏览器关闭时将其删除。服务器通常会将匹配数据保留超过上次访问时间的一定时间。这些条件中的任何一个都将“结束”会话。

标签: php session


【解决方案1】:
  1. 会话从第一个 session_start() 开始
  2. 会话在 session.gc_maxlifetime 和/或 session.cookie_lifetime 和/或与 PHP 会话垃圾收集器有关的其他一些事情之后结束。
  3. 使用会话需要 Cookie,因为 PHP 设置了一个包含用户 SESSID 的 cookie,并且浏览器会在每次请求时自动将其发回。
    • 您可以删除此 cookie,这会撤销您对会话的访问,但您的会话数据在技术上仍然存在,直到超时到期并且垃圾收集器运行。

Reference

【讨论】:

  • “与 PHP 的会话垃圾收集器有关的更多事情” - 什么?你能澄清一下吗?
猜你喜欢
  • 2015-06-28
  • 2013-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
  • 2018-05-30
  • 2015-01-31
相关资源
最近更新 更多