1、客户端用cookie保存了sessionId

客户端用cookie保存了sessionId,当我们请求服务器的时候,会把这个sessionId一起发给服务器,服务器会到内存中搜索对应的sessionId,如果找到了对应的 sessionId,说明我们处于登录状态,有相应的权限;如果没有找到对应的sessionId,这说明:要么是我们把浏览器关掉了(后面会说明为什 么),要么session超时了(没有请求服务器超过30分钟),session被服务器清除了,则服务器会给你分配一个新的sessionId。你得重 新登录并把这个新的sessionId保存在cookie中。
在没有把浏览器关掉的时候(这个时候假如已经把sessionId保存在cookie中了)这个sessionId会一直保存在浏览器中,每次请求的时候都会把这个sessionId提交到服务器,所以服务器认为我们是登录的;当然,如果太长时间没有请求服务器,服务器会认为我们已经所以把浏览器关掉了,这个时候服务器会把该sessionId从内存中清除掉,这个时候如果我们再去请求服务器,sessionId已经不存在了,所以服务器并没有在内存中找到对应的 sessionId,所以会再产生一个新的sessionId,这个时候一般我们又要再登录一次。

2、客户端没有用cookie保存sessionId

这 个时候如果我们请求服务器,因为没有提交sessionId上来,服务器会认为你是一个全新的请求,服务器会给你分配一个新的sessionId,这就是 为什么我们每次打开一个新的浏览器的时候(无论之前我们有没有登录过)都会产生一个新的sessionId(或者是会让我们重新登录)。
当我们一旦把浏览器关掉后,再打开浏览器再请求该页面,它会让我们登录,这是为什么?我们明明已经登录了,而且还没有超时,sessionId肯定还在服 务器上的,为什么现在我们又要再一次登录呢?这是因为我们关掉浏览再请求的时候,我们提交的信息没有把刚才的sessionId一起提交到服务器,所以服 务器不知道我们是同一个人,所以这时服务器又为我们分配一个新的sessionId,打个比方:浏览器就好像一个要去银行开户的人,而服务器就好比银行, 这个要去银行开户的人这个时候显然没有帐号(sessionId),所以到银行后,银行工作人员问有没有帐号,他说没有,这个时候银行就会为他开通一个帐 号。所以可以这么说,每次打开一个新的浏览器去请求的一个页面的时候,服务器都会认为,这是一个新的请求,他为你分配一个新的sessionId。

SessionId详解相关推荐

  1. cookie、session、sessionId 详解

    这篇博文是关于session的说明的文章,详细内容请参看下面的这篇博文: https://blog.csdn.net/dream_weave/article/details/83069830 http ...

  2. 【转】HTTP协议详解

    原文地址:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html 一.概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则 ...

  3. SSO单点登录三种情况的实现方式详解

    SSO单点登录三种情况的实现方式详解 单点登录(SSO--Single Sign On)对于我们来说已经不陌生了.对于大型系统来说使用单点登录可以减少用户很多的麻烦.就拿百度来说吧,百度下面有很多的子 ...

  4. shiro登陆流程源码详解

    前言 抽取了shiro最基本的登陆流程(web登陆是基于这层开发的). 详解源码 创建一个AuthenticationToken进行登录. SecurityUtils.getSecurityManag ...

  5. Apache Kafka-初体验Kafka(02)-Centos7下搭建单节点kafka_配置参数详解_基本命令实操

    文章目录 安装JDK 安装zookeeper 安装kafka 下载解压 配置hosts 启动kafka服务 server.properties核心配置详解 基本命令 创建主题 发送消息 消费消息 查看 ...

  6. HTTP协议的头信息详解

    HTTP协议的头信息详解 http://blog.csdn.net/guoguo1980/archive/2008/07/14/2649658.aspx HTTP协议的头信息详解 HTTP(Hyper ...

  7. JavaWeb 入门篇 (5) Cookie 和 Session 详解

    Cookie 和 Session 详解 一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 有状态会话:一个同学来过 ...

  8. java 登录session_JavaWeb Session详解

    记得把这几点描述好咯:代码实现过程 + 项目文件结构截图 + ## Session的由来 上一篇博文介绍了Cookie的相关知识,其中介绍了必须采用一种机制来唯一标识一个用户,同时记录该用户的状态. ...

  9. GitHub轻松阅读微服务实战项目流程详解【第二天:API网关的设计与实现】

    Two Day 1.配置文件精解 (1)bootstrap.yml文件 (2)nacos中关于gateway的配置信息 (3)applicaton.properties白名单配置 2.代码详解 (1) ...

最新文章

  1. IIS支持http协议的:put、delete等方法
  2. 哈希表等概率情况下查找成功和查找不成功的平均查找长度的计算
  3. java bigdecimal min_java
  4. Google Chubby 论文翻译
  5. winform把所有dll打包成一个exe
  6. 如何用ABP框架快速完成项目(面向项目交付编程面向客户编程篇) - 广州.net微软技术俱乐部12月份活动报名帖...
  7. apache ignite_使用Apache Storm和Apache Ignite进行复杂事件处理(CEP)
  8. POJ 1661 DP
  9. .NET MVC权限控制设计
  10. 导出excel文件,若在一台PC端无法正常导出,闪退,进程还存在时(以下方法也许对你有用)
  11. SQL 触发器 简记
  12. MySQL中Packet for query is too large (1327736 1048576)错误
  13. 使用ICallbackEventHandler实现无刷新回调
  14. Unity EditorWindow Rename
  15. ios11手机怎么投屏到电脑屏幕上
  16. #800 Div.2 E. Keshi in Search of AmShZ 最短路
  17. python opencv图片拼接、特征点匹配
  18. 无法显示页面,因为发生内部服务器错误。
  19. 关于定时任务一个批次起止时间的算法设计与实现
  20. 计算机主板名词解释,主板维修基础-主板名词解释

热门文章

  1. Slicer simulation - Noise
  2. 刺激战场c语言源码,转一个刺激战场极限帧率代码和修改教程,亲测流畅不卡...
  3. python运行微软图标代码_Python读取xlsx数据生成图标代码实例
  4. 小学计算机老师岗位职责,小学信息技术教师个人工作内容总结
  5. uni中使用select标签后生成APP页面跳转空白
  6. Windows环境中运行.dll文件
  7. oracle创建自增id(序列)
  8. windows7配置MySQL环境变量
  9. C语言问题之穿越雷区
  10. 华为手机上html怎么打开,华为手机的这俩功能一定要打开,这样才能感受到手机买值了!...