十、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

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

cookie的作用

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


    image.png

    image.png

session与cookie的区别

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

token应用场景

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

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

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

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


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


    image.png

session与token的区别

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

下一节:Mock应用,通过代理修改请求与响应,辅助构造更多场景实例。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容