Php 为什么在将响应发送到浏览器后要进行laravel存储会话?

Php 为什么在将响应发送到浏览器后要进行laravel存储会话?,php,laravel,session,laravel-5,Php,Laravel,Session,Laravel 5,问题很清楚。正如拉雷维尔所说: 例如,Laravel附带的“会话”中间件在响应发送到浏览器后将会话数据写入存储器 我想这是因为节省了响应时间,但我不确定。这是我能想到为什么它会这样工作的唯一原因 如果您需要将某个内容推送到会话,并使其立即从会话中可用,您可以使用以下 Session::now($key, $value); 检查StartSession中间件的handle方法,您可以看到,当将“cookie”驱动程序用于会话存储时,在将响应发送到浏览器之前,数据会写入存储(cookie) 但是,

问题很清楚。正如拉雷维尔所说:

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


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

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

如果您需要将某个内容推送到会话,并使其立即从会话中可用,您可以使用以下

Session::now($key, $value);

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

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


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

我想只有Taylor Otwell能够回答这个问题。