前瞻环节大家好我是程序员无尽冬欢迎大家来到我的专栏。本篇我们将给大家讲解java会话技术的相关知识 同时也会将它整理为我的个人八股分享给大家 希望大家可以喜欢。首先我们先了解一下什么是会话技术会话技术概述用户打开浏览器访问站点服务器连续操作(连续的访问站点服务器web资源)直到关闭浏览器这个整个过程就叫做会话。会话技术是一种在网络通信中用于跟踪用户状态的机制它可以让服务器在处理用户请求时保持特定用户的状态信息从而实现个性化的服务和用户体验。会话技术的发展历程HTTP 协议是一种无状态协议每个请求都是相互独立的服务器无法直接识别来自同一个用户的连续请求。这导致了一些问题例如无法跟踪和管理用户状态信息、无法提供个性化服务等。所以服务器与浏览器为了进行会话跟踪知道是谁在访问我就必须主动的去维护一个状态这个状态用于告知服务端前后两个请求是否来自同一浏览器。于是会话技术就应运而生了。为了解决这些问题人们开始探索如何实现会话管理。最初的方案是基于 Cookie 的会话管理。Cookie 是一种在客户端存储数据的机制服务器可以在响应中设置 Cookie然后在后续的请求中读取 Cookie。通过将会话标识符Session ID存储在 Cookie 中服务器能够识别特定用户的请求并保持其状态信息。Cookie 在浏览器中存储可以设置过期时间也可以通过设置路径和域名来限制 Cookie 的范围。为了更好地管理会话开发人员开始使用服务器端的会话存储来替代完全依赖于 Cookie。这就是 Session-Based Session 技术Session技术。服务器会为每个会话分配一个唯一的 Session ID并将该 ID 存储在服务器端的会话存储中而不是直接依赖于客户端的 Cookie。客户端的 Cookie 只包含 Session ID服务器通过 Session ID 来查找对应的会话数据。这样可以增加对会话的控制和安全性但需要在服务器端维护会话存储。随着移动设备和分布式系统的兴起无状态会话管理变得更加重要。Token-Based Session 技术Token技术应运而生。在这种技术中服务器使用 Token令牌来表示会话状态。当用户登录成功后服务器生成一个加密的 Token并将其发送给客户端。客户端在后续的请求中将 Token 带上服务器通过解析和验证 Token 来识别和管理会话。由于 Token 是无状态的服务器不需要维护会话存储可以更好地适应分布式环境。所以接下来我们了解一下会话的跟踪技术Cookie什么是CookieCookie是一种在客户端通常是Web浏览器和服务器之间传输的小型文本文件。它由服务器通过HTTP响应的头部设置并存储在客户端的浏览器中。当客户端发送后续请求时会将该Cookie信息包含在HTTP请求头中发送给服务器。Cookie怎么应用设置Cookie - GET /cookie/set - 设置示例Cookie获取所有Cookie - GET /cookie/get - 获取所有Cookie获取指定Cookie - GET /cookie/get/{name} - 根据名称获取Cookie删除Cookie - GET /cookie/delete/{name} - 删除指定Cookie自定义设置Cookie - POST /cookie/set - 自定义参数设置Cookie清空所有Cookie - GET /cookie/clear-all - 清除所有Cookie代码示例cookie的优缺点Session什么是SessionSession是一种在Web应用程序中跨请求保持用户状态的机制。Session是一段服务器上的存储区域用于存储用户信息和状态。当用户第一次访问Web应用程序时服务器会创建一个Session并给它分配一个唯一的标识符session ID然后将该标识符发送给客户端。客户端收到session ID后通常会将其存储在cookie中以便后续请求时将其发送回服务器。服务器通过session ID可以找到对应的Session并从中读取或修改用户信息和状态。session 是基于 cookie 实现的session 存储在服务器端sessionId 会被存储到客户端的cookie 中session的具体实现设置Session - GET /session/set - 设置示例Session数据自定义设置Session - POST /session/set?keyxxxvaluexxx - 自定义键值对获取所有Session - GET /session/get - 获取Session全部信息获取指定Session属性 - GET /session/get/{key} - 根据key获取删除Session属性 - GET /session/remove/{key} - 移除指定属性销毁Session - GET /session/invalidate - 销毁整个Session设置超时时间 - GET /session/timeout?seconds3600 - 设置过期时间检查是否存在 - GET /session/exists/{key} - 检查key是否存在代码示例sessoin的优缺点总结环节本期我们学习了会话技术的基本知识 还有一些会话跟踪技术像cookie和session 并融合为自己的八股我是程序员无尽冬感谢你的观看 如果对你有帮助 请一键三连支持一下最后分享一首歌给大家 https://music.163.com/song?id1843026858uct2U2FsdGVkX1wmPMP2hAqmkfOEO8MpPsLfcATrin8XZ4