gpt4 book ai didi

mysql - rails session 存储应该使用什么方法?如何决定?

转载 作者:IT王子 更新时间:2023-10-29 06:03:47 25 4
gpt4 key购买 nike

在 Rails 上存储 session 数据的最佳方法是什么?显然这取决于您的需求,但决定的关键因素是什么?不同场景的理想 session 存储是什么?

最佳答案

安全应该是一个问题。请记住,存储在客户端的任何内容(例如 cookie、表单 POST 参数、GET 参数等)都可以使用浏览器代理进行修改。因此,请始终验证通过浏览器返回的任何内容。您也可以加密 cookie 中的值或形成 POST 参数。另外,正如 Steve 提到的,cookie 通常应该只用于较小的值。

如果您不打算在服务器集群上运行,或者如果您是,如果您可以容忍用户的 session 在服务器出现故障时丢失(他们必须重新登录)。对于绝大多数应用程序来说,这是完全可以接受的。您需要为“粘性 session ”配置负载均衡器,这意味着给定用户绑定(bind)到单个服务器。不过,这会使负载平衡变得更加困难,因为有时您会发现许多用户绑定(bind)到一台服务器,而另一台服务器闲置在那里。

如果您需要跨集群共享 session 状态,您有几个主要选择。如果您的流量不是很大,并且您可以处理一小段额外的延迟,那么您可以将 session 信息存储在数据库中。只要您的数据库正常运行, session 数据就不会丢失。如果您的数据库出现故障, session 数据可能是您最不需要担心的。如果您的应用程序流量非常高,或者对性能非常关键,那么最好的办法是使用分布式缓存,例如 memcached。然而,这是您必须维护和监控的额外“基础设施”。即使 memcached 是分布式的,它仍然是您添加到应用程序环境中的额外故障点。所以,如果您真的不需要它,请不要掉以轻心。

长话短说,我认为默认的基于文件的 session 存储方法对于 90% 以上的应用程序来说可能是完全可以接受的。

关于mysql - rails session 存储应该使用什么方法?如何决定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5629673/

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