成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Session過期策略研究

Zachary / 1321人閱讀

摘要:走出誤區(qū),我們來討論一下真正的過期策略吧。前面說了,數(shù)據(jù)是否過期只與服務(wù)器有關(guān),此處在修改的過期策略配置三條紅線分別影響著的過期策略刪除幾率的分子刪除幾率的分母分鐘刪除一次一次終上所述默認(rèn)的過期機(jī)制為分鐘刪除一次,每個會話被刪除的幾率為。

首先說一點(diǎn)新手認(rèn)識中常見的誤區(qū):關(guān)閉瀏覽器session就過期了。這種說話是完全錯誤的,

session是否過期與客戶端如何操作沒什么必然關(guān)系,他只與服務(wù)器如何設(shè)置有關(guān)。

以下觀點(diǎn)以以PHP語言舉例,使用的是chrome瀏覽器[48.0.2564.116 (正式版本) m (32 位)](△注意這點(diǎn),因?yàn)镕irefox瀏覽器關(guān)閉后PHPSESSID會強(qiáng)行緩存,測試會導(dǎo)致不準(zhǔn))
2016年10月21日新增:
edge關(guān)閉后PHPSESSID悔刷新
但chrome與firfox都不會了。
猜測后兩個瀏覽器不會是為了用戶體驗(yàn)考慮。

每個用戶訪問網(wǎng)站,服務(wù)器會自動賦予用戶一個session_id值,此時服務(wù)器與客戶端(此處為瀏覽器)同時擁有著一份相同值的session_id值。

往后的所有包含SESSION數(shù)據(jù)增加,修改,刪除,過期一切都是以session_id值,為基礎(chǔ),session_id值,就是像一把鑰匙,溝通客戶端與服務(wù)器端之間關(guān)于SESSION的一切操作。

那”關(guān)閉瀏覽器session就過期了”這種網(wǎng)上普遍流傳的觀點(diǎn)是如何出現(xiàn)的呢?

首先說明的是,如果服務(wù)器代碼不進(jìn)行特殊操作,展示出來的效果確實(shí)是”關(guān)閉瀏覽器session就過期了”,譬如有些網(wǎng)站關(guān)閉瀏覽器再打開就要重新登錄,但是這不代表session過期了,session_id值依舊存在于服務(wù)端,session_id所指向的值是依舊存在的,以下代碼可以很好的證明這一點(diǎn),我關(guān)閉了瀏覽器甚至切換了瀏覽器,b.php永遠(yuǎn)都會打印出那個數(shù)據(jù)。

a.php:


b.php:

只要在session_start()前給session_id賦上一個初始值,那么當(dāng)前會話就會以那個session_id值作為鑰匙,去像服務(wù)器要數(shù)據(jù)。

所以在此處,b.php的session_id永遠(yuǎn)是”5op1k5moghb1hprgkifgh7nv71“,那么只要服務(wù)器的session_id值不過期,這段數(shù)據(jù)永遠(yuǎn)可以獲得得到。

一次session_start就是一次新的會話,如果沒有經(jīng)過特意賦值,那么將會產(chǎn)生一個新的session_id,新的session_id和原來的”5op1k5moghb1hprgkifgh7nv71“對不上,客戶端自然獲取不到對應(yīng)的session數(shù)據(jù)啦,那么就會出現(xiàn)”關(guān)閉瀏覽器session就消失這個誤區(qū)”。

走出誤區(qū),我們來討論一下session真正的過期策略吧。前面說了,session數(shù)據(jù)是否過期只與服務(wù)器有關(guān),此處在php.ini修改session的過期策略配置:

三條紅線分別影響著session的過期策略

Session.gc_probability = 1 //session刪除幾率的分子

Session.gc_divisor=1000 //session刪除幾率的分母

Session.gc_maxlifetime=1440 //24分鐘刪除一次一次

終上所述:默認(rèn)的session過期機(jī)制為 24分鐘刪除一次,每個session_id會話被刪除的幾率為1/1000。

我們可以手動將三行配置都改成1,進(jìn)行測試,那么我們會發(fā)現(xiàn)即使不關(guān)閉瀏覽器session值也是會過期的。(session值默認(rèn)要刷新一遍才過期,所以即便都設(shè)置成1也要手動刷新一遍,這和session本身的機(jī)制有關(guān))

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/21487.html

相關(guān)文章

  • 簽發(fā)的用戶認(rèn)證token超時刷新策略

    摘要:簽發(fā)的用戶認(rèn)證超時刷新策略這個模塊分離至項(xiàng)目權(quán)限管理系統(tǒng)與前后端分離實(shí)踐,感覺那樣太長了找不到重點(diǎn),分離出來要好點(diǎn)。這樣在有效期過后的時間段內(nèi)可以申請刷新。 簽發(fā)的用戶認(rèn)證token超時刷新策略 這個模塊分離至項(xiàng)目api權(quán)限管理系統(tǒng)與前后端分離實(shí)踐,感覺那樣太長了找不到重點(diǎn),分離出來要好點(diǎn)。 對于登錄的用戶簽發(fā)其對應(yīng)的jwt,我們在jwt設(shè)置他的固定有效期時間,在有效期內(nèi)用戶攜帶jw...

    e10101 評論0 收藏0
  • java | Spring Boot 與 Redis 實(shí)現(xiàn) Cache 以及 Session 共享

    摘要:完成狀態(tài)編寫中已完成維護(hù)中原文是一個使用編寫的開源支持網(wǎng)絡(luò)基于內(nèi)存可選持久性的鍵值對存儲數(shù)據(jù)庫維基百科是目前業(yè)界使用廣泛的基于內(nèi)存的數(shù)據(jù)庫。 完成狀態(tài) [ ] 編寫中 [ ] 已完成 [x] 維護(hù)中 原文 Redis Redis是一個使用ANSI C編寫的開源、支持網(wǎng)絡(luò)、基于內(nèi)存、可選持久性的鍵值對存儲數(shù)據(jù)庫 ------ 維基百科 Redis 是目前業(yè)界使用廣泛的基于內(nèi)存的...

    ssshooter 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<