个人八股之会话技术
2026/5/16 23:58:47 网站建设 项目流程

前瞻环节

大家好,我是程序员无尽,欢迎大家来到我的专栏。本篇我们将给大家讲解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

什么是Cookie

Cookie是一种在客户端(通常是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

什么是Session

Session是一种在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?key=xxx&value=xxx - 自定义键值对

获取所有Session - GET /session/get - 获取Session全部信息

获取指定Session属性 - GET /session/get/{key} - 根据key获取

删除Session属性 - GET /session/remove/{key} - 移除指定属性

销毁Session - GET /session/invalidate - 销毁整个Session

设置超时时间 - GET /session/timeout?seconds=3600 - 设置过期时间

检查是否存在 - GET /session/exists/{key} - 检查key是否存在

代码示例

sessoin的优缺点

总结环节

本期我们学习了会话技术的基本知识 还有一些会话跟踪技术像cookie和session 并融合为自己的八股

我是程序员无尽感谢你的观看 如果对你有帮助 请一键三连支持一下

最后分享一首歌给大家 https://music.163.com/song?id=1843026858&uct2=U2FsdGVkX1+wmPMP2hAqmkfOEO8MpPsLfcATrin8XZ4=

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询