0

在 G-WAN 的 Ruby 上实现会话的正确方法是什么,这是我的想法:

  1. 如果不存在,则发送随机 cookie,或者 GUID cookie 可以吗?但是如何在 G-WAN 的 Ruby 上读写 Cookie?文档仅显示 C 上的示例
  2. 如果 /tmp/rubysessid-#{cookie_GUID} 上不存在文件,则创建一个文件,就像 PHP 所做的那样
  3. 读取每个请求的内容,并在更改时重写

但问题是:同一时间来自同一来源的 2 个请求会同时重写 cookie 文件内容,从而可能导致数据损坏或不一致

有没有更好的方法在 G-WAN 的 Ruby 上实现会话?

4

1 回答 1

1

Web 框架使用数据库或键值存储(有时称为字典)来跟踪会话。

我不是 Ruby 开发人员,但我想这些功能是可用的。

G-WAN 允许您从 Ruby 访问 HTTP 请求标头(就像从 15 种编程语言中的任何其他语言一样),因此访问 HTTP cookie 确实没有问题。

文档仅显示 C 中的示例”,因为 G-WAN 是用 C 和 C 脚本编写的。

在那里,用为 C/C++ 等制作的 G-WAN API 填补空白是有意义的。

这种差距在 Ruby 和其他经常用于 Web 开发的脚本语言中不存在,人们有很多选择来解决这些问题。

在 Ruby 和其他的情况下,G-WAN 之所以没用是因为它的 API(使用 CGI 代替),而是因为它的速度和易用性(除此之外,我想到了零配置)。

于 2013-07-22T18:44:18.363 回答