Cookies和Session

Cookies和Session都是为了解决HTTP协议无状态性而引入的技术,它们用于在多个请求之间保持用户状态。

Cookies存储在客户端;

Session存储在服务器端;

两者怎么联系使得http保持了用户状态呢?

其实服务器首先创建session,生成sessionID,并通过cookie返回给了浏览器,这样浏览器就获得了sessionID,以asp.net core为例,生成的cookie名称默认是.AspNetCore.Session,当然也可以自定义名称;

由于session可也设置空闲超时时间,所以如果浏览器一段时间不操作,session就过期了,浏览器再用这个sessionID请求就失败了;

还有一种场景是关闭浏览器立即就要重新登录,这种场景是通过设置cookie为非持久化的方式,上面说了,sessionID是放在浏览器的cookie里的,把存放sessionID的cookie设为非持久化的,浏览器关闭时,这个cookie就没了,自然就无法带上sessionID,虽然实际上session在服务端还存在着,所以session一般要设置过期时间(空闲超时时间),以及定期清理过期session的机制,一般可采用redis存储session,因为redis自带过期机制,防止session越来越多占用太多资源。

posted @   路鸣  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示