0
点赞
收藏
分享

微信扫一扫

十、Session、Cookie、Token区别

flask demo

#!/user/bin/env python
# -*- coding: utf-8 -*-
from flask import Flask, session, Request, request, make_response

app = Flask(__name__)
request: Request
app.secret_key = "key"

@app. route( "/session")
def session_handle() :
    for k, v in request.args.items ( ) :
        session [k] = v
    resp = make_response({k: v for k, v in session.items()})
    for k, v in request.args.items ( ) :
        resp.set_cookie( f"cookie_{k}", v)
    return resp

普通get请求与设置session请求的diff

  • session数据存到服务端,session是一套数据的管理机制
  • session加密的内容会存到cookie中,通常称为 基于cookie的session

cookie的作用

  • 访问时会携带cookie信息,即使修改url的路径也会携带同样的cookie
  • sessionId以cookie的形式存放在客户端,以此来访问服务端信息



session与cookie的区别

  • cookie:浏览器接受服务器的Set-Cookie指令,并把cookie保存到电脑上,每个网站保存的cookie只作用于自己的网站
  • session:数据存储到服务端,只把关联数据的一个加密串放到cookie中标记

token应用场景

  • 凭借认证信息获取token,或者通过后台配置好token

  • 在相关请求中使用token,多数是以query参数的形态提供

  • 参考OAuth认证、企业微信、微信、github、gitlab等相关认证

  • 以企业微信为例:此token通常有过期时间


  • 以GitHub为例:此token通常不过期,可长期使用


session与token的区别

  • token是一个用户请求时附带的请求字段,用于验证身份与权限
  • session可以基于cookie,也可以基于query参数,用于关联用户相关数据
  • 跨端应用的时候,比如android原生系统不支持cookie
    • 需要用token识别用户
    • 需要用把sessionid保存到http请求中的header或者query字段中
举报

相关推荐

0 条评论