【Flask】4个session(二)请求上下文对象

版权声明:欢迎交流,转载请注明出处。 https://blog.csdn.net/u013034226/article/details/83787380

在上一篇文章click here当中,我既写了基于cookie的session,也写到了请求上下文中的session,本篇博客主要解释一些容易混淆的概念,以及对两个session进行区分。

❶基于cookie的session

这个session与框架(Flask,Django...)和语言无关,就是用来实现状态保持的

❷session的创建

session是程序运行的过程中在服务器端创建的,在创建session的同时,服务器会为该session生成唯一的session id,在session被创建之后,就可以调用session相关的方法往session中增加内容了,而这些内容只会保存在服务器中,发到客户端的只有session id;当客户端再次发送请求的时候,会将这个session id带上,服务器接受到请求之后就会依据session id找到相应的session,来确认‘身份’。

❸cookie与“基于cookie的session”有什么区别

首先cookie和session都是一种记录客户状态的机制,不同的是cookie保存在客户端浏览器中,而session保存在服务器上。

可以这么理解:cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么session机制就是通过客户报上“姓名”,检查服务器上的“客户明细表”来确认客户身份。session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。


❹什么是上下文,什么是请求上下文,什么是请求上下文对象

上下文:

flask设计时采取线程隔离的思路,在一次请求的一个线程中可以将其设置为全局变量,操作不会影响到其它线程。相当于一个容器,保存了 Flask 程序运行过程中的一些信息

请求上下文:

假如有一个程序得到一个请求,那么flask会将这个请求的所有相关信息进行打包,打包形成的东西就是处理请求的一个环境。flask将这种环境称为请求上下文。

请求上下文对象:

请求上下文中有request和session两个对象,一个负责处理http请求内容,一个负责处理用户信息。

常用session请求上下文对象操作:举例:session['name'] = user.id,可以记录用户信息。还可以通过session.get('name')获取用户信息,session.pop('user_id')删除用户信息。

到这里,已经两个session了。

猜你喜欢

转载自blog.csdn.net/u013034226/article/details/83787380