首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于酒瓶会议的几个问题

关于酒瓶会议的几个问题
EN

Stack Overflow用户
提问于 2015-10-13 21:50:56
回答 1查看 1.8K关注 0票数 6

考虑以下简单的烧瓶应用程序:

代码语言:javascript
运行
复制
from flask import Flask, request, session

application = Flask(__name__)
application.secret_key = "some_random_string"

@application.route("/enter_string")
def start_session():
    session["string"] = request.args["string"]

@application.route("/get_string")
def continue_session():
    if "string" not in session:
        return "Give me a string first!"

    return "You entered " + session["string"]

if __name__ == "__main__":
    application.debug = True
    application.run()

以下是我的问题:

  1. 一旦访问了"enter_string“端点并将一个字符串分配给session["string"],该字符串存储在哪里?是在服务器的内存中还是在用户的内存中?
  2. 默认情况下,会话在浏览器退出时过期。是否有一种简单的方法可以让其他事件触发会话的到期,例如关闭窗口,但不一定关闭浏览器?
  3. 默认情况下,会话是否会超时,或者是否一直保持到浏览器退出,不管需要多长时间?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-13 22:13:20

在水瓶中的会话可以以不同的方式实现。默认实现基于安全cookie(具有防止篡改的密码签名的cookie)。以下是您对此实现的问题的答案:

  1. 字符串将存储在客户端cookie中。每次浏览器向服务器发送请求时,cookie都将与其一起发送。
  2. 客户端可以通过使用Javascript删除cookie来销毁会话。(会话cookie的默认名称是session)。服务器可以通过删除会话中的所有项来删除会话。
  3. 在默认实现中,cookie的过期日期为31天。这可以通过PERMANENT_SESSION_LIFETIME配置设置进行更改。

正如我前面提到的,Flask支持第三方会话处理程序,所以上面的答案可能不适用于其他实现。特别是,有些处理程序实现服务器端会话(如Flask或),将会话数据存储在服务器中而不是客户端。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33113270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档