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。

 

posted @   exact  阅读(148)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· DeepSeek+PageAssist实现本地大模型联网
· 手把手教你更优雅的享受 DeepSeek
· Java轻量级代码工程
· 从 14 秒到 1 秒:MySQL DDL 性能优化实战
点击右上角即可分享
微信分享提示