0

我正在尝试在我的游戏中实现类似 cookie/会话功能的浏览器以用于登录系统。

据我了解,cookie 是如何工作的;

1 - Client request page without cookie in requestheader.
2 - Server receives requestheader without cookie in it and generates cookie for client.
3 - Server responds with a cookie for first request.
4 - In further requests server includes cookie in header.
5 - Client copies cookie info from second respond and adds it into requestheader later on.

问题是,我需要能够在第一次请求时发送 cookie,因为在 unity3d 中,我的客户端的每个请求 SessionId 都会发生变化。

除非我在第一次请求时没有的 requestheader 中包含 cookie,否则它不会像浏览器一样工作。所以它卡在1-3个步骤之间。

更新: 这是我在 Chrome 中使用以下 codeigniter 代码的经验。

public function getcookie()
{
    echo $this->input->get_request_header('Cookie', TRUE);
}

当我调用此页面时: http://mydomainaddr.com/srv/index.php/Srv/getcookie 它在第一次请求时不会打印任何内容。当我刷新它开始打印...

4

2 回答 2

0

为什么服务器不会用 cookie 响应3?大多数网站会在您第一次访问时为您提供会话 ID。至少我一直都是这样做的。

实际上,如果您没有在第一次请求时发送 cookie,那么您怎么知道访问者正在接受第二次请求呢?

于 2013-01-08T17:48:20.040 回答
0

首先响应服务器在 SET-COOKIE 或 Set-Cookie 标头中发送 cookie 信息,(不在 Cookie 标头中)在我应该稍后包含在我的请求标头中的响应标头中。

这就解释了为什么第一个请求中没有名为“Cookie”的标头。

于 2013-01-08T18:59:40.210 回答