考虑this职位我正在处理消息传递api,但它不是twilio api。有问题的服务器不支持存储cookies,所以我想知道如何将会话状态/数据以某种方式存储在内存、服务器或数据库中。
它是否和使用cookie方法一样简单?我找不到任何好的老师或例子。
最佳答案
我想你把曲奇和会话弄混了。
饼干
cookie,也称为http cookie、web cookie或浏览器cookie,是在用户浏览网站时从网站发送并存储在用户的web浏览器中的一小块数据。source
这意味着客户端站点上有一些包含信息的小文本文件这意味着用明文保存敏感内容可能不是最好的办法你必须知道,如果它接受cookies,它就在客户手中。
在sinatra中,它们是内置的,但命名为session(我知道,有点混乱,这是因为cookies是客户端web会话)
示例代码
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我不知道为什么会这样,但值得一提。
会议
会话或显式服务器端web会话是服务器站点上保留的每个客户端的状态。
示例代码
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中的“对话”流,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23784293/