[flask]session的基本使用

本文讲述了Cookie和Session在Web开发中的区别,包括存储位置、安全性、会话管理以及在Flask中的使用示例,强调了它们各自的特点和潜在风险。
摘要由CSDN通过智能技术生成

Cookie和Session的区别(面试必备)_cookie和session的作用和区别-CSDN博客

cooike和session都是用来跟踪浏览器用户身份的会话方式

ookie数据存放在客户的浏览器上,session数据放在服务器上

cooike相对于session来说的话,安全性没那么高,因为别人可以分析存放在本地的cooike来进行登录你的账号,毕竟cooike是存放在客户端上的(所以网吧不建议登steam是不是因为这个,别人会通过这个破坏账号?)

但这里的安全性是相对而言的,cookie和session都保存有在客户端的部分,只要被窃取都可以进行劫持,在这方面两者安全性没有本质上的区别。但是session放在缓存中,在进程关闭后,浏览器会销毁掉相关session信息,从这个角度来看,session相对安全。其实都不安全

session
简单的说,当你登陆一个网站的时候,如果web服务器端使用的是session,那么所有的数据都保存在服务器上,客户端每次请求服务器的时候会发送当前会话sessionid,服务器根据当前sessionid判断相应的用户数据标志,以确定用户是否登陆或具有某种权限。由于数据是存储在服务器上面,所以不能伪造,session的过期与否,是服务器决定的

session的ID存在有效期的,默认是会话期,会话结束了,session_id就废弃了

设置session
@app.route("/set_session")
def set_session():
    """设置session"""
    session['username'] = 'xiaoming'
    session['info'] = {
        "name": "xiaohong",
        "age": 16,
    }
    return "set_session"

可以通过客户端浏览器中的sessionid观察,其实默认情况下,flask中的session数据会被加密保存到cookie中的。当然,将来,我们可以采用flask-session第三方模块把数据转存到其他的存储设备,例如:redis或者mysql中。

获取session
@app.route("/get_session")
def get_session():
    """获取session"""
    print(session.get('username'))
    print(session.get('info'))
    return "get session"
删除session
@app.route("/del_session")
def del_session():
    """删除session,键如果不存在,则会抛出异常,所以删除之前需要判断键是否存在。"""
    if "username" in session:
        session.pop("username")
    if "info" in session:
        session.pop("info")
    return "del_session"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值