Session会话跟踪的原理?

简介: Session是服务端会话跟踪技术,用户首次访问时服务器为其创建唯一标识的Session对象,并通过Set-Cookie响应头将Session ID(JSESSIONID)写入浏览器Cookie。后续请求浏览器自动携带该Cookie,服务器据此找到对应Session,实现会话数据共享。虽Session存储于服务端较安全,但在集群环境下存在共享问题。

Session是服务端会话跟踪方案,具体的机制是这样的:
● 首先,当用户首次访问网站的时候,服务器会为该用户创建一个会话对象Session,而每一个Session对象都有一个唯一标识ID,同一次会话中需要共享的数据,就可以存储在Session中。然后在服务器给客户端浏览器响应的时候,会将会话对象Session的ID在响应头 Set-Cookie 中响应给浏览器。(Cookie的名字为JSESSIONID,Cookie的值为服务端会话对象Session的ID值)
● 浏览器接收到Cookie之后,就会自动将Cookie的值(JSESSIONID)存储起来,然后在后续访问服务器的时候,再将Cookie的值(JSESSIONID)携带到服务器。 在服务器中,就可以根据 JSESSIONID的值,找到对应的会话对象Session,从而操作会话对象Session中的数据了。
所以,总的来说,Sesssion会话跟踪的底层,其实还是基于Cookie实现的。 在Session会话跟踪的过程中,基于Cookie传递的其实就是Session会话对象的ID。
那这种方案,虽然Session存储在服务器端,用户无法操作,比较安全。 但是,在集群环境下Session的共享却是一个问题。

目录
相关文章
|
4月前
|
关系型数据库 数据库 索引
间隙锁
间隙锁是数据库中用于解决幻读问题的锁机制,主要在可重复读隔离级别下生效。它通过锁定索引记录之间的间隙,阻止其他事务插入新数据,从而保证查询结果的一致性。间隙锁在范围查询、唯一索引不存在记录时等场景触发,既能防止并发插入冲突,也可能降低并发性能并引发死锁。合理配置隔离级别和优化查询条件可减少其影响。
158 0
|
4月前
|
消息中间件 NoSQL Java
SpringBoot框架常见的starter你都用过哪些 ?
本节介绍常见的Spring Boot Starter,分为官方(如Web、AOP、Redis等)与第三方(如MyBatis、MyBatis Plus)两类,用于快速集成Web开发、数据库、消息队列等功能。
295 0
|
网络协议 Linux C语言
Linux实现socket网络通信
Linux实现socket网络通信
230 0
|
4月前
|
消息中间件 JSON 前端开发
SpringBoot使用汇总
本课程涵盖Spring Boot开发全流程,从环境搭建到项目架构设计,内容包括JSON数据处理、日志记录、属性配置、MVC、Swagger2、Thymeleaf、异常处理、AOP、MyBatis、事务管理、监听器、拦截器、Redis、ActiveMQ、Shiro、Lucene及实际项目架构搭建。
57 4
|
4月前
|
存储 算法 安全
重量级锁
重量级锁是Java中基于操作系统互斥量实现的传统线程同步机制,适用于高竞争场景。其通过对象头指向Monitor,管理线程的阻塞与唤醒,提供强安全性,但性能开销大,涉及用户态与内核态切换。相较轻量级锁,适用于不同竞争程度的同步需求。
81 0
|
4月前
|
消息中间件 JSON 安全
SpringBoot使用汇总
本课程基于Spring Boot 2.0.3,涵盖基础与进阶内容,帮助学习者快速掌握微服务开发中的常用技术点。课程包含实际项目场景与Demo,涉及JSON封装、日志、MVC、AOP、持久层集成、安全认证、消息队列等核心知识点,并提供可落地的项目架构,助力实战开发。
50 0
|
Ubuntu 安全 程序员
一文带你了解软件版本号
【9月更文挑战第3天】
3429 12
一文带你了解软件版本号
|
人工智能 前端开发 云计算
本地搭建AI环境
本地搭建AI环境
353 1
|
Oracle 关系型数据库 测试技术
《Oracle数据库管理员的利器:一键自动清理过期日志脚本详解》
【8月更文挑战第13天】在Oracle数据库管理中,日志文件的积累是一个需谨慎处理的问题。日志文件对故障恢复至关重要,但也可能占用大量磁盘空间。本文提供一个自动清理日志的脚本,帮助维护数据库健康。脚本通过定义日志路径和保留天数,使用`find`命令查找并删除过期日志,同时记录清理操作。使用前,请确认日志路径正确,并根据备份策略设置保留天数。通过给予脚本执行权限和配置定时任务(如cron),可实现自动清理,保持文件系统整洁,避免因日志文件过多引发的问题。务必在理解脚本原理并做好备份的情况下使用。
225 0
|
数据可视化 数据管理 大数据
【开源项目】轻量元数据管理解决方案——Marquez
【开源项目】轻量元数据管理解决方案——Marquez
758 57