为什么在响应发送到浏览器后laravel存储会话?

时间:2016-06-29 17:02:52

标签: php laravel session laravel-5

问题很清楚。正如laravel documentation所说:

  

例如,Laravel附带的“会话”中间件将会话数据写入存储 后,响应已发送到浏览器

我想这是因为节省了响应时间,但我不确定。

2 个答案:

答案 0 :(得分:1)

这是我能想到为什么会这样工作的唯一原因。

如果您需要将某些内容推送到会话并立即从会话中获取,则可以使用以下内容...

setlocal /?

答案 1 :(得分:1)

检查handle中间件的StartSession方法,您可以看到,当使用'cookie'驱动程序进行会话存储时,数据会在响应之前写入存储(cookie)被发送到浏览器。

但是,正如您所说,在使用“文件”或“数据库”会话驱动程序时,数据会在响应发送到浏览器之后写入存储,{{1}方法。

这可能是出于性能原因:应用程序主要关注的是尽快将响应发送给客户端。如果我们使用cookie驱动程序,Laravel会在发送响应之前“强制”将数据存储到存储中,因为会话信息需要存储在随响应发送的cookie中。而在其他情况下,laravel可以延迟写入存储,尽快发送响应