flask之session、cookie摘抄笔记

摘抄自: https://blog.csdn.net/qq_28877125/article/details/77677890 

cookie和session使用:

一、存储在服务端:通过cookie存储一个session_id,然后具体的数据则是保存在session中,如果用户已经登录,则服务器会在cookie中保存一个session_id,下次再次请求的时候,会把该session_id携带上来,服务器根据session_id在session库中获取用户的session数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。这种专业术语叫做server side session。
二、存储在客户端:将session数据加密,然后存储在cookie中。这种专业术语叫做client side session。flask 采用的就是这种方式,但是也可以替换成其他形式

flask中session

flask中的session机制是:把敏感数据经过加密后放入session中,然后再把session存放到cookie中,下次请求的时候,再从浏览器发送过来的cookie中读取session,然后再从session中读取敏感数据,并进行解密,获取最终的用户数据
flask的这种session机制,可以节省服务器的开销,因为把所有的信息都存储到了客户端(浏览器)。

参数解析: 

cookies:在Flask中操作cookie,是通过response对象来操作,可以在response返回之前,通过response.set_cookie来设置,这个方法有以下几个参数需要注意:

key:设置的cookie的key。
value:key对应的value。
max_age:改cookie的过期时间,如果不设置,则浏览器关闭后就会自动过期。
expires:过期时间,应该是一个datetime类型。
domain:该cookie在哪个域名中有效。一般设置子域名,比如cms.example.com。
path:该cookie在哪个路径下有效。

flask的session补充:

    A:含义
        session即签名(或加密)的cookie, 默认情况下,它会把数据存储在浏览器上的cookie里保存一个名为session的变量,该变量值为加密值
    B:方法
        session是通过密钥对数据进行签名以加密数据,因此,我们得事先设置一个密钥
        eg: app.secret_key = 'Drmhze6EPcv0fN_81Bj-nA'
    C:注意
        尽管session对象会对Cookie进行签名并加密,但这种方式仅能够确保session的内容不会被篡改,加密后的数据借助工具仍然可以轻易读取
        (即使不知道密钥)。因此,绝对不能在session中存储敏感信息,比如用户密码

 




 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值