Web会话管理(追踪)

Web 会话管理(追踪)

背景:HTTP 是无状态协议,一个请求,一个响应,之后谁也不认识谁。
为了标识、记录每个用户的用户状态,根据用户状态,推荐个性化服务,描绘出“用户画像”,出现了会话管理技术(前三个只支持Web)

  • cookie
    浏览器提供,在【客户端存储】用户状态
  • session
    服务器提供,在【服务端存储】用户状态
  • URL 编码(重写)
    对 cookie 的替代方案
  • token (令牌)
    HTTP 请求头,通用技术(浏览器、移动端、桌面)

Cookie

  • 浏览器提供,在【客户端存储】用户状态
  • 服务器创建,发送到浏览器
  • 以文本格式 存储在浏览器(本地磁盘)- 用户可以清除 / 禁止
  • 浏览器在请求头中携带发给服务器

优点:用户状态 存储 在客户端
缺点:文本格式、大小受限 [4KB]、请求头、用户可以清除 / 禁止

实际中,自动登录、浏览记录使用cookie

Session

服务器提供,在【服务端存储】用户状态
基于 cookie 实现的, 如果禁止了cookie,则会话 session 默认无法工作

  • 服务器检查 HTTP 请求头是否携带 jsessionid 的 cookie 是否存在
  • 不存在
    • 创建一个 jsession 的临时 cookie 加入到响应头
    • 服务器内存空间创建一个对应的 HashMap<String, Object>,用来存储用户数据
    • session 会话操作:添加、替换、删除、失效 都是操作该散列表
    • 占了服务器资源,就有了“超时”,即有效期,默认 30 分钟,倒计时结束,会话超时,回收,超时前有新的请求就实现续约
  • 存在
    • 重置timeout(超时)的时间,完成会话的续约
    • 由 jsessionid 找到对应的 HashMap 进行操作

URL 编码

为了在用户禁止cookie时,session还可以工作。

令牌(token)通用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值