HTTP 会话究竟如何工作以及在什么情况下会过期(在 Laravel 中)?

How does an HTTP session exactly work and in what cases does it expire (in Laravel)?

我正在创建一个 Laravel 应用程序,我正在尝试掌握 HTTP 会话的概念。我注意到我在基本层面上并没有真正理解它(例如 究竟发生了什么 )。

在 Internet 上,除了一些基本内容(获取和检索数据,以及一些其他常见内容)外,可用的信息不多。

我想更好地理解它,所以如果有人可以为我澄清以下内容,那将非常有帮助:

  1. 什么一个会话?驱动程序是什么意思? (Laravel 提供:“文件”、“cookie”、“数据库”、“apc”、“memcached”、 “redis”、“dynamodb”、“array”。)当我选择 e file vs cookie 会发生什么?
  2. 会话过期是什么意思?是当用户导航离开时,还是仅在浏览器中的特定时间?例如。如果我在入职期间将用户重定向到一些 OAuth,这是否意味着会话是否过期?

非常感谢!

如您所见,session取决于您选择的driver,同时您可以select超时以及config\session.php

Cookie的情况下,会话将在两种情况下过期:

  1. 一旦 cookie expired/deleted.
  2. (current_time - cookie_creation_time) > session_timeout设置在session.php.

在所有驱动程序中,有一个共同点:每当您访问该网站并向服务器发出请求时,它会添加上次访问时间并从那里计算会话超时。

当用户从浏览器导航并且 cookie 仍然存在且未过期时,将识别用户并且会话将保持不变。

我希望它更清楚...如果没有,请告诉我。我会分享一些例子。