zoukankan      html  css  js  c++  java
  • 每日一学--session、cookie、token

    session

    • 服务器为客户端的一次请求开辟的一段内存空间,存储Session对象,内部结构为ConcurrentHashMap
    • 弥补HTTP的无状态特性
    • 判断同一会话:
      • 第一次请求生成SessionId,通过HTTP响应头SetCookie: JSESSIONID=xxx指令要求客户端设置Cookie;
      • 客户端下一次请求携带SessionId,服务器就可判断为同一会话
    • 缺点:
      • 跨域问题,服务器多节点环境问题
    • 服务器在客户端浏览器保存的数据
    • 作用
      • 会话管理:登陆、购物车、游戏得分
      • 个性化:用户偏好、主题或其他设置
      • 追踪:记录分析用户行为
    • 分类:
      • 会话Cookie:未指定过期时间,客户端关闭则消失
      • 永久Cookie:指定的过期时间,客户端关闭不消失,在特定日期(Expires)或特定时间长度(Max-age)外过期
    • HttpOnly:防止攻击者通过程序(JS/Applet)获取用户Cookie,泄漏信息
    • 作用域
      • Domain指定哪些主机可以接受Cookie,包含子域,如Domain=sogou.com,则其子域名wenwen.sogou.com也包含Cookie
      • Path指定路径作用域,包含子路径,如:Path=/pweb,则子路径/pweb/web也可匹配

    JWT

    • 即json web token,与session cookies都可用于用户身份认证
    • JWT格式:xxx.yyyy.zzzzz
      • xxx:Header:指定令牌类型(JWT)和签名算法
    {
      "alg":"HS256",
      "typ":"JWT"
    }
    
    • yyyy:Payload:有关数据和实体的声明
    {
      "sub","12345",
      "name", "Jim",
      "admin", true
    }
    
    • zzzzz:Signature:签证信息,三部分组成
      • header(base64后)
      • payload(base64后)
      • secret
        比如需要HMAC SHA256算法进行签名
    HMACSHA256(
        base64UrlEncode(header) + "." + 
        base64UrlEncode(payload) + "." +
        secret)
    
    • JWT优点
      • 有加密签名,可保证一定安全性
      • 无状态,声明存储在客户端,身份验证可以在本地进行,无须进行服务器通信,降低了资源消耗
      • 支持跨域认证,由于不依赖服务节点,所以可以做到这点
  • 相关阅读:
    用网线连接Windows和Linux台式机,并实现Linux共享Windows的WiFi网络
    设计模式之建造者设计模式
    Mob之社会化分享集成ShareSDK
    Mob 之 短信验证集成 SMSSDK
    天地图值之添加覆盖物
    天地图之定位信息详解
    Material Design 组件之NavigationView
    Material Design 组件之 CollapsingToolbarLayout
    Material Design 组件之 AppBarLayout
    Material Design 组件之 FloatingActionButton
  • 原文地址:https://www.cnblogs.com/wod-Y/p/12871548.html
Copyright © 2011-2022 走看看