如何在第一次请求时生成并回复cookie?

时间:2013-01-08 17:45:21

标签: php codeigniter session cookies unity3d

我正在尝试在我的游戏中为登录系统实现类似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,因为在我的客户端的每个请求SessionId中,unity3d都会发生变化。

它不像浏览器那样,除非我在请求头中包含cookie,我首先请求时没有。所以它陷入了1-3步之间。

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

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

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

2 个答案:

答案 0 :(得分:0)

为什么服务器不会使用3中的Cookie回复?大多数网站会在第一次访问时为您提供会话ID。这就是我至少一直这样做的方式。

实际上,如果您没有在第一次请求时发送cookie,您如何知道访问者第二次请求?

答案 1 :(得分:0)

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

这就解释了为什么第一次请求中没有“Cookie”命名标题。