会话与会话管理:Cookie与Session的深度解析

一、什么是会话?

二、Cookie:客户端存储技术

[1. Cookie的工作原理](#1. Cookie的工作原理)

2、在后端设置cookie

3、在前端设置cookie

三、浏览器开启了cookie禁用怎么办?


一、什么是会话?

**会话(Session)**是指一个用户与服务器之间的一系列交互过程。从用户第一次访问服务器开始,到用户关闭浏览器结束,这个过程称为一个会话。会话管理的目标是让服务器能够"记住"用户的身份和之前的操作,从而实现有状态的交互。

会话分为两种类型:

  1. 有状态会话(Stateful Session) :服务器主动维护用户的会话状态信息(如用户登录状态、操作记录等),并将其存储在服务端。类似于"服务员记住你的喜好"。

  2. 无状态会话(Stateless Session) :服务器不存储用户状态信息,所有状态由客户端自行管理(如通过URL参数或客户端存储)。类似于"服务员不会记住你"。

由于HTTP协议本身是无状态的,需要借助CookieSession技术实现会话管理

会话管理:像http这种不会保存会话状态的需要 借助其他方法来帮助保存会话状态,让服务器能够"记住"用户的身份和之前的操作。cookie客户端技术【把状态存在客户端】、session服务端技术【把状态存在服务端】

二、Cookie:客户端存储技术

1. Cookie的工作原理

cookie由服务器创建,【所有第一次访问没有信息】然后通过响应发送给客户端,发送到用户浏览器并保存到本地的一块信息。他会在浏览器下次发起请求时携带并发送到服务器上

2、在后端设置cookie

① test: 创建一个设置co okie的服务器后端 SetCookie

查看cookie:

设置值:

设置cookie后任一请求都能携带cookie信息 :

② 获取cookie:创建一个GetCookie的服务器后端

后端输出

3、在前端设置cookie

++cookie作为一个客户端技术,在前端页面利用js技术也可以设置获取++

设置:

获取:

也可以使用jquery操作:jQuery Cookie 插件 | 菜鸟教程----👍

这里我是本地引入的

**获取所有cookie:**console.log($.cookie(''))

可以直接获取某个cookie console.log($.cookie('account'))

java 复制代码
 //删除某个cookie
 $.removeCookie('color');

**三、**Session:服务端的会话管理技术

1、Session的工作原理

Session是一种存储在服务器端的技术。服务器会为每个用户创建一个Session,并将Session ID存储在Cookie中发送给客户端。客户端在每次请求时会携带Session ID,服务器通过Session ID来识别用户。

2、服务器后端设置session----只能在后端设置,前端设置不了

可以看到JSESSIONID----每次访问都会更新

服务器后端获取session

删除session

输出就没有名字了

销毁session

三、浏览器开启了cookie禁用怎么办?

如果浏览器开启了cookie禁用,就彻底不能用cookie了,session也不能正常使用,但是session可以挽救一下:

在 session 这个地方,重写 URL,借助重定向直接跳到 get session。

相关推荐
KATA~3 分钟前
解决MyBatis-Plus枚举映射错误:No enum constant问题
java·数据库·mybatis
xyliiiiiL18 分钟前
一文总结常见项目排查
java·服务器·数据库
shaoing20 分钟前
MySQL 错误 报错:Table ‘performance_schema.session_variables’ Doesn’t Exist
java·开发语言·数据库
腥臭腐朽的日子熠熠生辉1 小时前
解决maven失效问题(现象:maven中只有jdk的工具包,没有springboot的包)
java·spring boot·maven
ejinxian1 小时前
Spring AI Alibaba 快速开发生成式 Java AI 应用
java·人工智能·spring
杉之1 小时前
SpringBlade 数据库字段的自动填充
java·笔记·学习·spring·tomcat
圈圈编码2 小时前
Spring Task 定时任务
java·前端·spring
俏布斯2 小时前
算法日常记录
java·算法·leetcode
27669582922 小时前
美团民宿 mtgsig 小程序 mtgsig1.2 分析
java·python·小程序·美团·mtgsig·mtgsig1.2·美团民宿
爱的叹息2 小时前
Java 连接 Redis 的驱动(Jedis、Lettuce、Redisson、Spring Data Redis)分类及对比
java·redis·spring