美文网首页理论基础web&Request微服务
十、Session、Cookie、Token区别

十、Session、Cookie、Token区别

作者: InsaneLoafer | 来源:发表于2021-05-27 09:52 被阅读0次

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应用,通过代理修改请求与响应,辅助构造更多场景实例。

相关文章

网友评论

    本文标题:十、Session、Cookie、Token区别

    本文链接:https://www.haomeiwen.com/subject/fobbjltx.html