服务器端控制器如何处理来自客户端的多个会话?

How server-side controllers handle multiple sessions from client?

我有 JavaScript 背景,最近正在学习服务器端。我的印象是服务器端的控制器在与客户端交互方面是一对多的比例。

我有这个登录代码:

@expose('/login/', methods=('GET', 'POST'))
    def login_view(self):
        if request.method == 'GET':
            # Render template
        if request.method == 'POST':
            # Take email and password from form and check if 
            # user exists. If he does, log him in.
            login.login_user(user)

            # Store user_id in session for socketio use
            session['user_id'] = login.current_user.id

            # Redirect

我知道会话字典就像 JavaScript 的 localStorage 对应物,那么这是否意味着每个唯一的客户端都有一个唯一的控制器?因为如果多个客户端共享同一个控制器,那么它们会覆盖 session.user_id 吗?

创建会话,在用户通过身份验证后在客户端(在 cookie 中)维护状态。

因此,当用户使用电子邮件和密码登录时,服务器将识别(使用数据库中存储的有效电子邮件和密码进行一些检查)。服务器现在可以在响应中使用令牌(和可能的到期时间)设置 cookie。之后,来自该特定客户端的 HTTP 请求将有一个令牌,服务器将使用该令牌来识别用户。

基本上,每个会话都在客户端维护,控制器在服务器端检查有效性。