由codeigniter在标题中重复的"set-cookie:ci-session"字段

mat*_*lus 6 cookies session codeigniter duplication http-headers

每次在我的控制器中使用$ this-> session-> set_userdata()或$ this-> session-> set_flashdata()时,另一个相同的"Set-Cookie:ci_session = ..."被添加到http头中服务器发送.

根据rfc6265,http标头中具有相同cookie名称的多个Set-Cookie字段不合适.

那么有没有一种方法可以使用codeigniter会话而不创建多个相同的"set-cookie:"?

(我用curl来验证http头)

小智 5

检查https://github.com/EllisLab/CodeIgniter/pull/1780

默认情况下,在使用cookie会话处理程序(加密或未加密)时,每次将新值写入会话时,CI都会发送整个"Set-Cookie"标头.这导致多个标头被发送到客户端.

这是一个问题,因为如果将太多的值写入会话,HTTP标头可能会变得非常大,而某些Web服务器将拒绝响应.(见http://wiki.nginx.org/HttpProxyModule#proxy_buffer_size)

解决方案是在输出页面内容之前,在发送所有其他标题之后立即运行'sess_save()'一次.