每次在我的控制器中使用 $this->session->set_userdata() 或 $this->session->set_flashdata() 时,另一个相同的“Set-Cookie: ci_session=...” 会添加到 http 标头中服务器发送。
根据 rfc6265,http 标头中具有相同 cookie 名称的多个 Set-Cookie 字段是不可以的。
那么有没有一种方法可以使用 codeigniter 会话而不创建多个相同的“set-cookie:”?
(我使用curl来验证http标头)
check https://github.com/EllisLab/CodeIgniter/pull/1780 https://github.com/EllisLab/CodeIgniter/pull/1780
默认情况下,当使用 cookie 会话处理程序(加密或未加密)时,每次将新值写入会话时,CI 都会发送整个“Set-Cookie”标头。这会导致多个标头被发送到客户端。
这是一个问题,因为如果向会话写入太多值,HTTP 标头可能会变得非常大,并且某些 Web 服务器将拒绝响应。 (看http://wiki.nginx.org/HttpProxyModule#proxy_buffer_size http://wiki.nginx.org/HttpProxyModule#proxy_buffer_size)
解决方案是仅在发送所有其他标头后立即运行“sess_save()”一次,然后再输出页面内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)