天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP中SESSION使用中的一點經(jīng)驗總結(jié)

SESSION會話開啟時,會首先發(fā)送一個對瀏覽器的唯一標(biāo)識session_id的cookie(名字為phpSESSID可以通過session_name()獲取),同session.save_handler = files的情況下,在服務(wù)器的指定目錄(如temp)下生成一個沒有后綴的文件,名字是
復(fù)制代碼 代碼如下:
'sess_" + 'session_id';

 
這樣就完成了基本的設(shè)置。那么在下一次發(fā)起http請求時,首先瀏覽器會發(fā)送這個當(dāng)前域名下的所有cookie名字和值過去,這樣服務(wù)器就能根據(jù)cookie中的session_id來去讀取session文件,而不會混淆這個session屬于誰。

這一步具體如下:

SESSION發(fā)送一個對瀏覽器的唯一cookie變量session_id,這個session_id變量有名字、有值。變量名(name)默認為phpSESSID,變量值(value)為apach隨機生成的字符串,類似rvag9m368vim7k8g4v7k2ank70 。通常說的session_id其實是指這個唯一的字符串rvag9m368vim7k8g4v7k2ank70。

具體的在FF的HTTP響應(yīng)頭下如此:


session_start();
 在程序中上面一句就完成了上面的功能,假如瀏覽器沒有發(fā)送phpSESSID的cookie過來就發(fā)送一個過去,有就讀取這個cookie,這樣就能維持同一個會話。

好了既然知道了session的工作原理,那么我們可以推測到假如服務(wù)器端sess_rvag9m368vim7k8g4v7k2ank70 這個文件我們手動刪除了,那么session失效,假如瀏覽器cookie失效,那么session照樣失效。
在手動的情況下:
服務(wù)器端,可以用
session_ destroy() 或者session_ unset()
  來使其失效。
在瀏覽器端:
可以直接
?setcookie('phpSESSID','',123);
  讓cookie過期,或者另外一種方式,但不能立即失效
?session_set_cookie_params($time);//當(dāng)前時間戳上的秒,例如60,即讓其60秒后過期,<SPAN style="COLOR: #ff0000">不要用時間戳+自己設(shè)定的時間。 </SPAN>
  上面所講的都是讓session提前過期,但是想直接讓session延遲行不行呢?除了修改配置(session.gc_maxlifetime)是不行的,在php.ini里面session.gc_maxlifetime 設(shè)置過期時間,到了這個時間,就有session.gc_probability /session.gc_divisor的概率被回收。假如到了這個時間,并且啟動了GC進程,GC會去讀取session文件的修改時間(mtime),發(fā)現(xiàn)大于和當(dāng)前時間相減后大于session.gc_maxlifetime ,立刻刪除。到此,我們也就明白了如何保持這個會話呢,只能在session.gc_maxlifetime 內(nèi),必須有用戶在訪問,每次訪問都去修改下session,這樣就這個session又多出session.gc_maxlifetime的存活時間。
另外說一下session.cookie_lifetime ,設(shè)置phpSESSID在瀏覽器的存活時間,默認為0,IE下我發(fā)現(xiàn)是正常的,瀏覽器重啟即cookie失效;FF下還繼續(xù)存在。設(shè)置session.cookie_lifetime可以用session_set_cookie_params,
?session_set_cookie_params(60);//60 s session_start();
session.gc_maxlifetime和session.cookie_lifetime 共同決定了session的生存時間。
-------------------------------------------------------------
剛剛找了一下firefox cookie會話過期的資料,發(fā)現(xiàn)如下

This is apparently by design. Check out this Bugzilla bug:https://bugzilla.mozilla.org/show_bug.cgi?id=443354

Firefox has a feature where you close Firefox and it offers to save all your tabs, and then you restore the browser and those tabs come back. That's called session restore. What I didn't realize is that it'll also restore all the session cookies for those pages too! It treats it like you had never closed the browser.

This makes sense in the sense that if your browser crashed you get right back to where you were, but is a little disconcerting for web devs used to session cookies getting cleared. I've got some old session cookies from months ago that were set by sites I always have open in tabs.

To test this out, close all the tabs in your browser, then close the browser and restart it. I think the session cookies for your site should clear in that case. Otherwise you'd have to turn off session restore.

這是火狐的會話保存功能,F(xiàn)F設(shè)計就是如此。可以做這個close all the tabs in your browser, then close the browser and restart it測試,看看是否還保存著。

php技術(shù)PHP中SESSION使用中的一點經(jīng)驗總結(jié),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: BL低喘贯穿顶弄老师H | 国产精品久久久久成人免费 | 国产又爽又黄又不遮挡视频 | 超碰高清熟女一区二区 | 亚洲精品国产字幕久久vr | 国产成人在线视频免费观看 | 99久久免费精品国产 | 十九岁在线观看免费完整版电影 | 国产午夜福利片 | 丝袜情趣在线资源二区 | 国产成人综合高清在线观看 | 亚洲天堂视频网站 | X8X8拨牐拨牐X8免费视频8午夜 | 97国产人妻精品无码AV在线 | 日本无码免费久久久精品 | 中文字幕va一区二区三区 | 国产一区二区内射最近更新 | 久久99精品国产免费观看 | 久久精品动漫99精品动漫 | 果冻传媒妈妈要儿子 | 亚洲欧美偷拍视频一区 | 国产成人亚洲精品老王 | 亚洲人成无码久久久AAA片 | 国产亚洲精品久久精品69 | 97精品国产高清在线看入口 | 午夜国产高清精品一区免费 | 狠狠国产欧美在线视频 | 毛片手机在线看 | 一一本之道高清手机在线观看 | 成人免费视频在线观看 | 国产亚洲精品精品国产亚洲综合 | 精品久久久久中文字幕加勒比东京热 | 精品视频一区二区三三区四区 | 亚洲精品国产在线观看 | 亚洲色欲色欲WWW在线丝 | 国产精品久久久久精品A片软件 | 全彩无翼污之邪恶女教师 | 一二三四在线播放免费观看中文版视频 | av天堂网2014在线 | 亚洲一区二区女搞男 | 色婷婷国产精品视频一区二区 |