我使用Python框架Falcon创建应用程序后端,并使用Beaker处理会话管理。在生产中,我们将在AWS中使用Gunicorn。
有件事我一直无法理解:
Gunicorn将运行几个工作人员,这是否意味着对于提出请求的不同客户端,环境变量仍然存在?换句话说,是只针对一个客户端使用烧杯会话,还是在同一个Gunicorn工作者实例中向多个请求客户端提供?
这就是我从阅读中理解会话的方式:
一个人登录到我的应用程序中,user_id就会添加到Beaker的会话中。来自同一个客户端的未来请求将把这个user_id存储在会话dict中。现在,来自该客户机的任何未来请求都将能够访问存储在会话中的变量。每个客户端都有自己的会话数据。
我明白了吗?
当前的方法是在需要更多用户信息时(在成功登录时)将id返回给客户端以传递给后端。
发布于 2016-12-05 06:57:57
我明白了吗?
是的,你知道,在大多数情况下。
Gunicorn将运行几个工作人员,这是否意味着对于提出请求的不同客户端,环境变量仍然存在?换句话说,是只针对一个客户端使用烧杯会话,还是在同一个Gunicorn工作者实例中向多个请求客户端提供?
烧杯将会话数据保存在服务器端,在由唯一会话id标识的专用数据存储中,客户端将通过cookie发送回会话id,然后服务器(gunicorn worker)可以检索会话数据。
我建议阅读关于会话如何工作的更详细的说明,如:http://machinesaredigging.com/2013/10/29/how-does-a-web-session-work/
https://stackoverflow.com/questions/40967608
复制相似问题