gpt4 book ai didi

ruby - 在 Sinatra 中跟踪 "conversation"流

转载 作者:太空宇宙 更新时间:2023-11-03 17:51:32 25 4
gpt4 key购买 nike

考虑 this邮政。我正在处理消息传递 API,但它不是 Twilio API。有问题的服务器没有明确支持存储 cookie,所以我想知道如何以某种方式将 session 状态/数据存储在内存、服务器或数据库中。

是不是像使用Rack::Session::Pool作为cookie方法一样简单?我找不到任何好的 tuts 或例子。

最佳答案

我认为您有点混淆了 cookie 和 session 。

cookies

Cookie 也称为 HTTP cookie、网络 cookie 或浏览器 cookie,是从网站发送并在用户浏览该网站时存储在用户网络浏览器中的一小段数据。 source

这意味着客户端站点上有包含信息的小文本文件。这意味着以明文形式保存敏感内容可能不是最好的主意。你必须知道,如果它接受 cookie,它就在客户端手中。

在 sinatra 中,它们是内置的但命名为 session (我知道,有点困惑,这是因为 cookie 是客户端网络 session )

示例代码

require 'sinatra'
enable :sessions

get '/' do
session["value"] ||= "Hello world!"
"The cookie you've created contains the value: #{session["value"]}"
end

并且在 Sinatra Contrib 中有 Sinatra::Cookies .我不知道为什么会存在这种情况,但值得一提。

session

session 或显式服务器端网络 session 是每个客户端在服务器站点上保持的状态。

示例代码

require 'sinatra'
use Rack::Session::Pool

get '/' do
session["value"] ||= "Hello world!"
"The server side session you've created contains the value: #{session["value"]}"
end

结论和 TL;DR

如果不知道您到底想达到什么目的,就很难说哪个更适合您。此外,甚至可以将两者结合起来并将状态保存到数据库中。因此,这取决于您要实现的目标。

关于ruby - 在 Sinatra 中跟踪 "conversation"流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23784293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com