session 与 cookie的区别
http
http协议是无状态的(前后两次的请求互相独立),本身不支持服务端保存客户端的状态,但是基于业务需求,经常需要保存客户端的状态,也就引入了会话跟踪的概念。
会话跟踪技术的实现一般由两种:cookie和session。
cookie
cookie是客户端会话跟踪技术(客户端状态保存在cookie中,也就是浏览器的缓存,浏览器所在pc的文件中)
cookie中保存的就是client端的状态信息,实际是由server端写的,发给client端,client之后每次访问server都会携带这个cookie信息,便于更新。这里也就是相当于带状态的http
cookie的生命周期可以设置,
cookie的作用域是同一个域名下(不区分端口,按ip和path去分)
http session
session是服务端会话跟踪技术(客户端状态保存在server侧)
session实现方式有多种,其中一种也是依赖cookie,在cookie中设置一个JSESSION字段,携带一个uuid,然后服务端以这个key来保存信息(客户端状态)
如果禁用cookie,则session的实现方式是在url后面拼接session id信息
session的有效期,客户端保存的是一个cookie信息,但是这个cookie中只是携带一个key,而不是全部信息,其有效期同cookie的有效期
服务端根据内存设置一定的有效期,需要设置一定的策略,如LRU,来驱逐无用的session id。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· .NET 8.0 + Linux 香橙派,实现高效的 IoT 数据采集与控制解决方案
· .NET中 泛型 + 依赖注入 的实现与应用