cookie和session

来源:互联网 发布:网络当前不存在家庭组 编辑:程序博客网 时间:2024/06/05 07:31
  1. HTTP请求是无状态的,用户会话跟踪技术有cookie和session
  2. session是基于cookie实现的
  3. cookie随着服务器的响应写入客户端浏览器,下次
    再向服务器发送请求是会自动把cookie添加到HTTP请求中
  4. cookie是保存在客户端浏览器中的一段字符串信息

session

  1. 保存在服务器中,会占用服务器资源
  2. session是一小块内存空间
  3. session创建时会使用UUID算法拿到一个字符串session_id
  4. session_id会作为会话cookie写入浏览器,再次请求时会根据浏览器发来的session_id找到对应的session
  5. sesseion使用两级超时模式,可以设置过期时间
  6. 敏感数据存储在服务器,更加安全

Flask session

  1. Flask的session机制是将用户数据加密之后放到cookie中的,
    而不是保存在服务器上
  2. 服务器重启后Secret_key会变化,所以之前写入浏览器的session会解析不到正确结果
  3. session加密需要设置SECRET_KEY,app.config[‘SECRET_KEY’]=os.urandom(24)
  4. 添加数据到session,session[‘username’]=’mark’
  5. 读取session数据,session.get(‘username’)
  6. 删除session,session.pop(‘username’)或者session.clear()
  7. 如果没有指定session过期时间,默认浏览器关闭时过期
  8. session.permanent=True 过期时间是一个月(31天)
  9. app.config[‘PERMANENT_SESSION_LIFETIME’] =timedelta(days=7) 设置session有效期限为7天