HTTP 会话究竟是如何工作的,在什么情况下它会过期在 Laravel 中?

问题描述

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

在互联网上,除了一些基本的东西(获取和检索数据,以及一些其他常见的东西)之外,没有太多可用的信息。

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

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

非常感谢!

解决方法

如您所见,session 取决于您选择的 driver,同时您也可以在 config\session.php 中选择超时。

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

  1. 一旦 cookie 过期/删除。
  2. 或者 (current_time - cookie_creation_time) > session_timeout 中设置的 session.php

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...