真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

session在server端是怎么存在的

這篇文章主要講解了“session在server端是怎么存在的”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“session在server端是怎么存在的”吧!

我們提供的服務(wù)有:網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、資溪ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的資溪網(wǎng)站制作公司

默認(rèn)的,php會將session保存在/tmp目錄下,文件名為這個樣子:sess_01aab840166fd1dc253e3b4a3f0b8381.每一個文件對應(yīng)了一個session(會話).

more/tmp/sess_01aab840166fd1dc253e3b4a3f0b8381

username|s:9:“phpzixue.cn”;admin|s:1:“0″;

#變量名|類型:長度:值

刪除這里的session文件,就表示對應(yīng)的session失效了.

session在client端(一般是瀏覽器)如何存在的?

session在瀏覽器端,只需要保存sessionID(由server端生成的唯一ID)就可以了.有兩種保存方式:在cookie中、在url里面.如果cookie中保存sessionID,就可以看到瀏覽器的cookie中有一個PHPSESID變量.如果是URL傳遞的,就可以看到形如:

index.php?PHPSESID=01aab840166fd1dc253e3b4a3f0b8381的URL.(在server端通過session.use_cookies來控制使用哪一種方式)

在server端,php如何判斷session文件是否過期

如果”最后的修改時間“到”現(xiàn)在“超過了gc_maxlifetime(默認(rèn)是1440)秒,這個session文件就被認(rèn)為是過期了,在下一次session回收的時候,如果這個文件仍然沒有被更改過,這個session文件就會被刪除(session就過期了).

簡單的說,如果我登錄到某網(wǎng)站,如果在1440秒(默認(rèn)值)內(nèi)沒有操作過,那么對應(yīng)的session就認(rèn)為是過期了.

所以,修改php.ini文件中的gc_maxlifetime變量就可以延長session的過期時間了:(例如,我們把過期時間修改為86400秒)

session.gc_maxlifetime=86400

然后,重啟你的web服務(wù)(一般是apache)就可以了.

注意:php5里面session過期使用了回收機(jī)制.這里設(shè)置時間為86400秒,如果session在86400秒內(nèi)沒有被修改過,那么在下一次”回收“時才真的被刪除。

session”回收“何時發(fā)生

默認(rèn)情況下,每一次php請求,就會有1/100的概率發(fā)生回收,所以可能簡單的理解為”每100次php請求就有一次回收發(fā)生“.這個概率是通過以下參數(shù)控制的

#概率是gc_probability/gc_divisor

session.gc_probability=1

session.gc_divisor=100

注意1:假設(shè)這種情況gc_maxlifetime=120,如果某個session文件最后修改時間是120秒之前,那么在下一次回收(1/100的概率)發(fā)生前,這個session仍然是有效的.

注意2:如果你的session使用session.save_path中使用別的地方保存session,session回收機(jī)制有可能不會自動處理過期session文件.這時需要定時手動(或者crontab)的刪除過期的session:cd/path/to/sessions;find-cmin+24|xargsrm

一些特殊情況

因?yàn)榛厥諜C(jī)制會檢查文件的”最后修改時間“,所以如果某個會話是活躍的,但是session的內(nèi)容沒有改變過,那么對應(yīng)的session文件也就沒有改變過,回收機(jī)制會認(rèn)為這是一個長時間沒有活躍的session而將其刪除.這是我們不愿看到的,可以通過增加如下的簡單代碼解決這個問題:

if(!isset($_SESSION['last_access'])||(time()-$_SESSION['last_access'])>60)

$_SESSION['last_access']=time();

?>

代碼會每隔60秒,嘗試修改修改一次session.

感謝各位的閱讀,以上就是“session在server端是怎么存在的”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對session在server端是怎么存在的這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!


網(wǎng)頁題目:session在server端是怎么存在的
網(wǎng)站URL:http://weahome.cn/article/poijsc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部