SessionID的本质

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SessionID的本质
⼀、客户端⽤cookie保存了sessionID
客户端⽤cookie保存了sessionID,当我们请求服务器的时候,会把这个sessionID⼀起发给服务器,服务器会到内存中搜索对应的sessionID,如果找到了对应的 sessionID,说明我们处于登录状态,有相应的权限;如果没有找到对应的sessionID,这说明:要么是我们把浏览器关掉了(后⾯会说明为什么),要么session超时了(没有请求服务器超过20分钟),session被服务器清除了,则服务器会给你分配⼀个新的sessionID。

你得重新登录并把这个新的sessionID保存在cookie中。

在没有把浏览器关掉的时候(这个时候假如已经把sessionID保存在cookie中了)这个sessionID会⼀直保存在浏览器中,每次请求的时候都会把这个sessionID提交到服务器,所以服务器认为我们是登录的;当然,如果太长时间没有请求服务器,服务器会认为我们已经所以把浏览器关掉了,这个时候服务器会把该sessionID从内存中清除掉,这个时候如果我们再去请求服务器,sessionID已经不存在了,所以服务器并没有在内存中找到对应的 sessionID,所以会再产⽣⼀个新的sessionID,这个时候⼀般我们⼜要再登录⼀次。

⼆、客户端没有⽤cookie保存sessionID
这个时候如果我们请求服务器,因为没有提交sessionID上来,服务器会认为你是⼀个全新的请求,服务器会给你分配⼀个新的sessionID,这就是为什么我们每次打开⼀个新的浏览器的时候(⽆论之前我们有没有登录过)都会产⽣⼀个新的sessionID(或者是会让我们重新登录)。

当我们⼀旦把浏览器关掉后,再打开浏览器再请求该页⾯,它会让我们登录,这是为什么?我们明明已经登录了,⽽且还没有超
时,sessionID肯定还在服务器上的,为什么现在我们⼜要再⼀次登录呢?这是因为我们关掉浏览再请求的时候,我们提交的信息没有把刚才的sessionID⼀起提交到服务器,所以服务器不知道我们是同⼀个⼈,所以这时服务器⼜为我们分配⼀个新的sessionID,打个⽐⽅:浏览器就好像⼀个要去银⾏开户的⼈,⽽服务器就好⽐银⾏,这个要去银⾏开户的⼈这个时候显然没有帐号(sessionID),所以到银⾏后,银⾏⼯作⼈员问有没有帐号,他说没有,这个时候银⾏就会为他开通⼀个帐号。

所以可以这么说,每次打开⼀个新的浏览器去请求的⼀个页⾯的时候,服务器都会认为,这是⼀个新的请求,他为你分配⼀个新的sessionID。

相关文档
最新文档