我正在尝试在我的游戏中为登录系统实现类似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 它不会在第一次请求时打印任何内容。 当我刷新它开始打印...
答案 0 :(得分:0)
为什么服务器不会使用3
中的Cookie回复?大多数网站会在第一次访问时为您提供会话ID。这就是我至少一直这样做的方式。
实际上,如果您没有在第一次请求时发送cookie,您如何知道访问者第二次请求?
答案 1 :(得分:0)
首先,响应服务器在响应标头中的SET-COOKIE或Set-Cookie标头中发送cookie信息(不在Cookie标头中),我应该将其包含在我的请求标头中。
这就解释了为什么第一次请求中没有“Cookie”命名标题。