网络基本概念——会话(session)

这是摘自维基百科的篇章,对于计算机学科中“会话”的解释如下:

In computer science, in particular networking, a session is a temporary and interactive information interchange between two or more communicating devices, or between a computer and user (see login session). A session is established at a certain point in time, and then torn down - brought to an end - at some later point. An established communication session may involve more than one message in each direction. A session is typically stateful, meaning that at least one of the communicating parties needs to hold current state information and save information about the session history in order to be able to communicate, as opposed to stateless communication, where the communication consists of independent requests with responses.
翻译为:在计算机科学中,特别是在网络中,会话是两个或多个通信设备之间,或计算机与用户之间临时的、交互式的信息交换(请参阅登录会话)。会话在某个时间点建立,然后在稍后的某个时间点被结束。已建立的通信会话可能涉及每个方向的多个消息。会话通常是有状态的,这意味着至少有一个通信方需要保存当前状态信息并保存关于会话历史的信息,以便能够进行通信,而不是无状态通信,在无状态通信中,通信由具有响应的独立请求组成。

因此“会话”可以理解为一个信息交互的过程,如客户端与服务器建立链接后数据传输的过程。这个过程从建立连接开始,到断开连接结束,期间可能涉及某一方多次信息的传递。

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Session 是 Web 应用程序中常用的一种机制,它用于存储用户的数据,以便在应用程序的不同页面中进行共享。Session 可以通过 cookie 或 URL 参数来实现,但是最常见的方式是使用 cookie。 在使用 session 时,服务器会为每个用户分配一个唯一的会话 ID,并将该 ID 存储在 cookie 中。每次用户访问网站时,服务器都会从 cookie 中获取会话 ID,然后将与该 ID 相关联的数据加载到 session 对象中。 下面是一个使用 session 的示例: ```python from flask import Flask, session, redirect, url_for, escape, request app = Flask(__name__) app.secret_key = 'mysecretkey' @app.route('/') def index(): if 'username' in session: username = session['username'] return 'Logged in as ' + username + '<br>' + \ "<b><a href = '/logout'>click here to log out</a></b>" return "You are not logged in <br><a href = '/login'></b>" + \ "click here to log in</b></a>" @app.route('/login', methods = ['GET', 'POST']) def login(): if request.method == 'POST': session['username'] = request.form['username'] return redirect(url_for('index')) return ''' <form action = "" method = "post"> <p><input type = "text" name = "username"/></p> <p><input type = "submit" value = "Login"/></p> </form> ''' @app.route('/logout') def logout(): session.pop('username', None) return redirect(url_for('index')) ``` 在上面的示例中,我们首先需要导入 Flask 和 session。然后,我们创建一个名为 app 的 Flask 实例,并将其密钥设置为 "mysecretkey"。这个密钥用于保护 session 数据,因此应该保持机密。 接下来,我们定义了三个路由函数: - index():该函数检查 session 是否包含一个名为 "username" 的键,如果是,则返回用户已登录的消息;否则,返回用户未登录的消息。 - login():该函数使用 POST 方法处理表单提交,并将输入的用户名存储在 session 中。然后,该函数将用户重定向到 index() 函数。 - logout():该函数从 session 中删除 "username" 键,并将用户重定向到 index() 函数。 在上面的示例中,我们使用了 Flask 的内置 session 对象来存储用户的数据。session 对象是一个类字典的对象,可以使用与字典相同的方式存储和访问数据。可以使用 session['key'] = value 来存储数据,使用 session.get('key') 来获取数据。 总之,使用 session 可以方便地在不同页面之间共享用户数据,并且可以通过设置密钥来保护敏感数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值