LAMP堆栈中的哪个应用程序组件设置“Set-Cookie”标头

时间:2012-11-16 10:17:18

标签: php http-headers session-cookies

我正在使用的应用程序接受三种不同类型的登录。如果客户端从某些IP地址或POST请求(从普通浏览器呈现的表单或JSON读取API端点)连接,则自动进行。

所有三个选项都归结为调用相同的功能来注册用户登录,并生成会话。

尽管代码路径在我能够确定的范围内是相同的,但其中两个始终有效,而其中一个始终无法添加“Set-Cookie”#39;即使应用程序逻辑生成一个在响应主体中发送的sessionid,也会对响应进行标头处理。

我从不需要深入了解会话身份验证如何工作到这个详细程度,我意识到我不明白。 其中' Set-Cookie'标题,来自。应用程序逻辑是否应始终手动构建标头? PHP会在调用session_start()后自动执行吗? Apache是​​否基于标题的其他部分来做?

我排除了1,因为我未能在代码库中找到grep -ri "set.cookie" *的任何内容。

1 个答案:

答案 0 :(得分:1)

session_start发送会话缓存限制器会话cookie (或使用PHPSESSID设置$ _GET键)。

此功能是发送Set-Cookie参数的位置。然后,Apache会在返回页面时将其传回浏览器。

但是你需要记住,存储cookie实际上是直到浏览器。总的来说,它们将被设置为没有问题,但某些条件将阻止这种情况发生,例如Internet Explorer中的安全设置或用户完全拒绝cookie。

进一步阅读:

http://www.php.net/manual/en/function.session-start.php

http://www.php.net/manual/en/function.session-get-cookie-params.php

http://www.php.net/manual/en/function.session-status.php