当前位置: 首页 > 面试题库 >

在龙卷风中处理用户会话的标准方法

王涵育
2023-03-14
问题内容

因此,为了避免出现“没有一个最佳答案”的问题,我要问的不是使用最佳方法,而是使用Tornado框架时处理会话的标准或最常用方法。也就是说,如果我们不使用第三方身份验证(OAuth等),而是想在浏览器中拥有自己的带有安全cookie的Users表,但是大多数会话信息都存储在服务器上,那么最常见的方式?我见过有人使用Redis,有人使用普通数据库(MySQL或Postgres或其他),有人使用memcached。

我正在使用的应用程序一次不会有数百万个用户,甚至可能没有成千上万的用户。不过,最终将需要获得某种程度复杂的授权方案。我正在寻找的是确保我们不会做与普通的Tornado社区不同的“怪异”事情,因为尽管认证和授权虽然是我们所需要的,但并不是一件容易的事。产品的核心,所以我们不应该在与众不同的地方。因此,我们正在寻找大多数人(使用Tornado)在这方面正在做的事情,因此,我认为这是(理论上)客观上正确答案的问题。

当然,理想的答案将指向示例代码。


问题答案:

Tornado设计为无状态,并且没有开箱即用的会话支持。

使用安全cookie来存储敏感信息,例如user_id。使用标准Cookie来存储非关键信息。

对于存储大对象-使用标准方案-MySQL + memcache。



 类似资料:
  • 我编写了一个非常简单的tornado处理程序,用于测试远程部署的一些设备的上传速度。主要测试将在所说的远程设备上运行(多亏了cURL),我可以得到上传时间的详细报告。 Tornado处理程序真正要做的唯一一件事就是接受一个包含大量字节的实体(差不多就是这样) 所以,上面的代码是有效的,但它有点。。。几乎是可耻的:-D让它更。。。可展示的,我想展示一些更有用的日志,比如请求上传所花的时间或者类似的东

  • 我阅读了tornado和相关模块,以了解当接受套接字并解析和处理请求时,tornado会做什么。 然后我向tornado发送一些请求,所有请求都被设置为读取超时3秒,我在tornado上发现了一些连接,几分钟后,这些连接正常关闭。 我猜5秒处理程序是减缓tornado的事件循环,当tornado处理第二个处理程序时,它的连接已经关闭,如果tornado知道了,它就不需要再做下一步了。

  • 我设法编写了一个相当愚蠢的bug,它会使我的一个请求处理程序运行一个非常慢的DB查询。 有趣的是,我注意到,即使在围攻完成很久之后,龙卷风仍然在翻腾请求(有时是90年代以后)。(评论-->我不是100%确定围攻的工作原理,但我相当肯定它关闭了连接..) 我通读了代码,似乎什么也找不到。尽管我的请求处理程序在上面的bug中异步运行,但挂起的请求数量堆积到了一个降低应用程序速度的水平,关闭连接会更好。

  • 问题内容: 我想使用python库龙卷风(版本4.2)进行一些异步HTTP请求。但是,由于出现异常:我无法强迫将来完成(使用),因为“ DummyFuture不支持阻止结果”。 我有python 3.4.3,因此将来的支持应该成为标准库的一部分。的文档说: 如果有龙卷风,将使用。否则,它将使用此模块中定义的兼容类。 下面提供了我尝试做的一个最小示例: 如果我正确理解我的问题,则会发生此问题,因为未

  • 我已经建立一个网站一段时间了,我仍然坚持那件事: 我在dbm数据库中为我的网站存储了一些小视频(最多大约400MB),我想在我的网站上播放它们。 我正在使用Tornado python框架手工构建请求处理程序,我想知道如何构建我的处理程序。我从未发现媒体流是如何工作的,也没有在网上找到很多话题。 所以我想要实现的完整结果是在我的网站上有一个网络播放器,在那里我可以请求特定的视频,然后播放它们,而不

  • 如何获得我的python龙卷风模块版本的当前版本? 与其他软件包,我可以做到以下几点: 来源:如何检查python模块的版本?

  • 问题内容: 我有一个传入的对象。如何找到发出请求的客户端的 IP ?我浏览了的大多数方法和属性,似乎错过了一些东西。 问题答案: (来自RequestHandler的实例) 您可以像这样检查响应:

  • 问题内容: 我想用Tornado运行一个用Flask编写的简单应用程序。我该怎么做呢?我想使用Python 2.7和最新的Tornado版本(4.2)。 问题答案: Flask文档用于描述如何执行此操作,但是由于以下性能说明而已被删除。除非所有异步代码都已经用Tornado编写,否则您不需要Tornado来提供Flask应用程序。 关于WSGI的Tornado文档也对此进行了描述。它们还包括一个重