SessionID 的本质
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
一、客戶端用cookie保存了sessionID
?
客戶端用cookie保存了sessionID,當(dāng)我們請(qǐng)求服務(wù)器的時(shí)候,會(huì)把這個(gè)sessionID一起發(fā)給服務(wù)器,服務(wù)器會(huì)到內(nèi)存中搜索對(duì)應(yīng)的 sessionID,如果找到了對(duì)應(yīng)的 sessionID,說(shuō)明我們處于登錄狀態(tài),有相應(yīng)的權(quán)限;如果沒(méi)有找到對(duì)應(yīng)的sessionID,這說(shuō)明:要么是我們把瀏覽器關(guān)掉了(后面會(huì)說(shuō)明為什 么),要么session超時(shí)了(沒(méi)有請(qǐng)求服務(wù)器超過(guò)20分鐘),session被服務(wù)器清除了,則服務(wù)器會(huì)給你分配一個(gè)新的sessionID。你得重 新登錄并把這個(gè)新的sessionID保存在cookie中。?
在沒(méi)有把瀏覽器關(guān)掉的時(shí)候(這個(gè)時(shí)候假如已經(jīng)把sessionID保存在 cookie中了)這個(gè)sessionID會(huì)一直保存在瀏覽器中,每次請(qǐng)求的時(shí)候都會(huì)把這個(gè)sessionID提交到服務(wù)器,所以服務(wù)器認(rèn)為我們是登錄 的;當(dāng)然,如果太長(zhǎng)時(shí)間沒(méi)有請(qǐng)求服務(wù)器,服務(wù)器會(huì)認(rèn)為我們已經(jīng)所以把瀏覽器關(guān)掉了,這個(gè)時(shí)候服務(wù)器會(huì)把該sessionID從內(nèi)存中清除掉,這個(gè)時(shí)候如果 我們?cè)偃フ?qǐng)求服務(wù)器,sessionID已經(jīng)不存在了,所以服務(wù)器并沒(méi)有在內(nèi)存中找到對(duì)應(yīng)的 sessionID,所以會(huì)再產(chǎn)生一個(gè)新的sessionID,這個(gè)時(shí)候一般我們又要再登錄一次。?
二、客戶端沒(méi)有用cookie保存sessionID
?
這 個(gè)時(shí)候如果我們請(qǐng)求服務(wù)器,因?yàn)闆](méi)有提交sessionID上來(lái),服務(wù)器會(huì)認(rèn)為你是一個(gè)全新的請(qǐng)求,服務(wù)器會(huì)給你分配一個(gè)新的sessionID,這就是 為什么我們每次打開(kāi)一個(gè)新的瀏覽器的時(shí)候(無(wú)論之前我們有沒(méi)有登錄過(guò))都會(huì)產(chǎn)生一個(gè)新的sessionID(或者是會(huì)讓我們重新登錄)。?
當(dāng)我 們一旦把瀏覽器關(guān)掉后,再打開(kāi)瀏覽器再請(qǐng)求該頁(yè)面,它會(huì)讓我們登錄,這是為什么?我們明明已經(jīng)登錄了,而且還沒(méi)有超時(shí),sessionID肯定還在服 務(wù)器上的,為什么現(xiàn)在我們又要再一次登錄呢?這是因?yàn)槲覀冴P(guān)掉瀏覽再請(qǐng)求的時(shí)候,我們提交的信息沒(méi)有把剛才的sessionID一起提交到服務(wù)器,所以服 務(wù)器不知道我們是同一個(gè)人,所以這時(shí)服務(wù)器又為我們分配一個(gè)新的sessionID,打個(gè)比方:瀏覽器就好像一個(gè)要去銀行開(kāi)戶的人,而服務(wù)器就好比銀行, 這個(gè)要去銀行開(kāi)戶的人這個(gè)時(shí)候顯然沒(méi)有帳號(hào)(sessionID),所以到銀行后,銀行工作人員問(wèn)有沒(méi)有帳號(hào),他說(shuō)沒(méi)有,這個(gè)時(shí)候銀行就會(huì)為他開(kāi)通一個(gè)帳 號(hào)。所以可以這么說(shuō),每次打開(kāi)一個(gè)新的瀏覽器去請(qǐng)求的一個(gè)頁(yè)面的時(shí)候,服務(wù)器都會(huì)認(rèn)為,這是一個(gè)新的請(qǐng)求,他為你分配一個(gè)新的sessionID。
轉(zhuǎn)自:http://www.cnblogs.com/japanbbq/archive/2011/09/01/2161650.html
分類: JavaEE轉(zhuǎn)載于:https://my.oschina.net/u/224202/blog/55257
總結(jié)
以上是生活随笔為你收集整理的SessionID 的本质的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Qt学习之路_1(安装及首次体验)
- 下一篇: extjs gridpanel滚动条问题