【发布时间】:2010-02-13 06:00:04
【问题描述】:
我正在寻找一种通过 C++ 中的 cookie 处理会话的方法。任何人都可以帮我提供一些解决方案的提示吗?
【问题讨论】:
我正在寻找一种通过 C++ 中的 cookie 处理会话的方法。任何人都可以帮我提供一些解决方案的提示吗?
【问题讨论】:
libcurl 可以帮助你。请参阅“没有巧克力片的饼干”here。
【讨论】:
假设您的 C++ 代码用作 CGI 处理程序,这只是在请求和响应中读取和写入 cookie 的问题。
如果你的会话数据很小(小于 32 字节左右),那么你可以把它存储在 cookie 中。
如果您需要存储更多数据,或者想要在服务器之间共享会话,那么您将需要创建唯一且随机的 ID 来表示您的会话。然后,您应该获取该 ID 并查找实际的会话数据(在内存或数据库中)。
我写的都是 1990 年代的 CGI 101。
我猜在 C++ 领域,它应该是这样的:
int main() {
map<string,string> headers = parseRequestHeaders(cin);
int64_t sessionId = 0;
SessionData *session = 0;
if (getSessionId(headers, &sessionId)) {
session = getSession(sessionId);
}
else {
session = newSession();
sessionId = session->id();
setCookie(sessionId);
}
// ...
}
【讨论】: