亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

理解PHP中的Session及對Session有效期的控制

2020-03-22 20:10:29
字體:
來源:轉載
供稿:網友
0.什么是session?
Session的中文譯名叫做“會話”,其本來的含義是指有始有終的一系列動作/消息,比如打電話時從拿起電話撥號到掛斷電話這中間的一系列過程可以稱之為一個session。目前社會上對session的理解非常混亂:有時候我們可以看到這樣的話“在一個瀏覽器會話期間,...”,這里的會話是指從一個瀏覽器窗口打開到關閉這個期間;也可以看到“用戶(客戶端)在一次會話期間”這樣一句話,它可能指用戶的一系列動作(一般情況下是同某個具體目的相關的一系列動作,比如從登錄到選購商品到結賬登出這樣一個網上購物的過程;然而有時候也可能僅僅是指一次連接;其中的差別只能靠上下文來推斷了。
然而當session一詞與網絡協議相關聯時,它又往往隱含了“面向連接”和/或“保持狀態”這樣兩個含義,“面向連接”指的是在通信雙方在通信之前要先建立一個通信的渠道,比如打電話,直到對方接了電話通信才能開始?!氨3譅顟B”則是指通信的一方能夠把一系列的消息關聯起來,使得消息之間可以互相依賴,比如一個服務員能夠認出再次光臨的老顧客并且記得上次這個顧客還欠店里一塊錢。這一類的例子有“一個TCP session”或者“一個POP3 session”。
鑒于這種混亂已不可改變,要為session下個定義就很難有統一的標準。而在閱讀session相關資料時,我們也只有靠上下文來推斷理解了。不過我們可以這樣理解:例如我們打電話,從撥通的那一刻起到掛斷電話期間,因為電話一直保持著接通的狀態,所以把這種接通的狀態叫做session。它是訪客與整個網站交互過程中一直存在的公有變量,在客戶端不支持COOKIE的時候,為了保證數據正確、安全,就采用SESSION變量。訪問網站的來客會被分配一個唯一的標識符,即所謂的會話 ID。它要么存放在客戶端的 cookie,要么經由 URL 傳遞。
SESSION的發明填補了HTTP協議的局限:HTTP協議被認為是無狀態協議,無法得知用戶的瀏覽狀態,當它在服務端完成響應之后,服務器就失去了與該瀏覽器的聯系。這與HTTP協議本來的目的是相符的,客戶端只需要簡單的向服務器請求下載某些文件,無論是客戶端還是服務器都沒有必要紀錄彼此過去的行為,每一次請求之間都是獨立的,好比一個顧客和一個自動售貨機或者一個普通的(非會員制)大賣場之間的關系一樣。
因此通過SESSION(cookie是另外一種解決辦法)記錄用戶的有關信息,以供用戶再次以此身份對web服務器提起請求時作確認。會話的發明使得一個用戶在多個頁面間切換時能夠保存他的信息。網站編程人員都有這樣的體會,每一頁中的變量是不能在下一頁中使用的(雖然form,url也可以實現,但這都是非常不理想的辦法),而SESSION中注冊的變量就可以作為html' target='_blank'>全局變量使用了。
那么SESSION到底有什么用處呢?網上購物時大家都用過購物車,你可以隨時把你選購的商品加入到購物車中,最后再去收銀臺結帳。在整個過程中購物車一直扮演著臨時存貯被選商品的角色,用它追蹤用戶在網站上的活動情況,這就是SESSION的作用,它可以用于用戶身份認證,程序狀態記錄,頁面之間參數傳遞等。
SESSION 的實現中采用COOKIE技術,SESSION會在客戶端保存一個包含session_id(SESSION編號)的COOKIE;在服務器端保存其他 session變量,比如session_name等等。當用戶請求服務器時也把session_id一起發送到服務器,通過session_id提取所保存在服務器端的變量,就能識別用戶是誰了。同時也不難理解為什么SESSION有時會失效了。
當客戶端禁用COOKIE時(點擊IE中的“工具”—“internet="" Internet選項”,在彈出的對話框里點擊“安全”—“自定義級別”項,將“允許每個對話COOKIE”設為禁用),session_id將無法傳遞,此時SESSION失效。不過php5在linux/unix平臺可以自動檢查cookie狀態,如果客戶端設置了禁用,則系統自動把session_id附加到url上傳遞。windows主機則無此功能。1.php session 有效期php的session有效期默認是1440秒(24分鐘),如果客戶端超過24分鐘沒有刷新,當前session會被回收,失效。
當用戶關閉瀏覽器,會話結束,session也會失效??梢孕薷膒hp.ini的session.gc_maxlifetime來設置session的生命周期,但并不能保證在超過這一時間后session信息立即會刪除。因為GC是按機率啟動的,可能在某一個長時間內都沒有被啟動。那么大量的session在超過session.gc_maxlifetime后仍然有效。
2.session.gc_maxlifetime,session.gc_probability,session.gc_divisor說明session.gc_maxlifetime = 30 表示當session文件在30秒后沒有被訪問,則視為過期session,等待GC回收。GC進程調用的概率是通過session.gc_probability/session.gc_divisor計算得來的,而session.gc_divisor默認是1000,
如果session.gc_probability = 1000,那么GC進程在每次執行session_start()時都會調用,執行回收。把session.gc_probability/session.gc_divisor的機率提高,會有幫助,但會對性能造成嚴重影響。
3.嚴格控制session過期方法(1).使用memcache/redis來保存session,設置過期時間,因為memcache/redis的回收機制不是按機率的,可以確保session過期后失效。(2).只使用php實現,創建一個session類,在session寫入時,把過期時間也寫入。讀取時,根據過期時間判斷是否已過期。 * Session控制類class Session{ * 設置session * @param String $name session name * @param Mixed $data session data * @param Int $expire 超時時間(秒) public static function set($name, $data, $expire=600){ $session_data = array(); $session_data['data'] = $data; $session_data['expire'] = time()+$expire; $_SESSION[$name] = $session_data; * 讀取session * @param String $name session name * @return Mixed public static function get($name){ if(isset($_SESSION[$name])){ if($_SESSION[$name]['expire'] time()){ return $_SESSION[$name]['data']; }else{ self::clear($name); return false; * 清除session * @param String $name session name private static function clear($name){ unset($_SESSION[$name]);PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久久久久91| 狠狠色香婷婷久久亚洲精品| 1769国内精品视频在线播放| 亚洲精品av在线播放| 亚洲男人的天堂在线播放| 91精品国产色综合久久不卡98口| 亚洲欧美激情精品一区二区| 欧美极品少妇xxxxx| 国产一区二区三区精品久久久| 91精品视频一区| 久久精品2019中文字幕| 亚洲女人天堂成人av在线| 久久91精品国产91久久久| 久久久久久久久国产| 菠萝蜜影院一区二区免费| 亚洲精品第一国产综合精品| 91视频九色网站| 精品成人av一区| 欧美黑人xxxⅹ高潮交| 亚洲在线视频观看| 中文字幕9999| 日本久久久久久久久久久| 欧美综合国产精品久久丁香| 97涩涩爰在线观看亚洲| 国产成人精彩在线视频九色| 丝袜美腿亚洲一区二区| 中文字幕无线精品亚洲乱码一区| 97欧美精品一区二区三区| 亚洲男人天堂九九视频| 久久久亚洲国产天美传媒修理工| 一本色道久久综合狠狠躁篇的优点| 久热精品视频在线免费观看| 九九精品在线视频| 日韩中文在线观看| 日韩暖暖在线视频| 国产精品99免视看9| 久久久女女女女999久久| 国产成人福利视频| 久久综合免费视频| 欧美激情视频网址| 欧美最顶级的aⅴ艳星| 欧美夫妻性生活视频| 国产日产久久高清欧美一区| 久久精品在线播放| 欧美日韩国产成人高清视频| 欧美亚洲国产日韩2020| 欧美激情视频网| 国产91精品视频在线观看| 国产精品一区二区女厕厕| 久久久久久噜噜噜久久久精品| 日本精品视频在线播放| 日韩av片免费在线观看| 欧美老肥婆性猛交视频| 国产黑人绿帽在线第一区| 亚洲人成电影网站色…| 在线观看亚洲视频| 日韩精品一区二区视频| 久久亚洲国产成人| 国产精品日韩在线播放| 热久久99这里有精品| 97热精品视频官网| 日韩经典第一页| 国产精品第一第二| 国内成人精品视频| 国产不卡精品视男人的天堂| 久久久久久国产精品| 久久99热精品这里久久精品| 久久人人97超碰精品888| 欧美丰满少妇xxxxx做受| 亚洲国产精品高清久久久| www.欧美免费| 91po在线观看91精品国产性色| 国产精品久久久久免费a∨| 国产精品a久久久久久| 久久av红桃一区二区小说| 91在线精品播放| 久热99视频在线观看| 另类天堂视频在线观看| 国产欧美一区二区三区在线| 久久久精品在线| 国产精品福利小视频| 尤物精品国产第一福利三区| 日韩美女在线看| 国产69久久精品成人| 日本久久久久久久| 国产精品天天狠天天看| 国产一区二区成人| 亚洲精品美女在线| 中文字幕欧美精品在线| 性夜试看影院91社区| 欧美成人精品一区| 午夜精品免费视频| 日韩精品视频免费专区在线播放| 欧美最猛性xxxxx(亚洲精品)| 国产欧美日韩丝袜精品一区| 国产精品高潮呻吟久久av无限| 精品亚洲一区二区三区| 欧美成人中文字幕| 欧美小视频在线观看| 国产一区av在线| 国产丝袜一区二区| 成人中文字幕+乱码+中文字幕| www.日韩视频| 欧美寡妇偷汉性猛交| 久久久女人电视剧免费播放下载| 日本精品免费一区二区三区| 国产精品免费小视频| 国产精品一区二区久久| 亚洲精品之草原avav久久| 国产精品黄色av| 亚洲午夜精品视频| 欧美电影在线观看网站| 欧美日韩精品在线播放| 国产成人精品免高潮在线观看| 亚洲国产成人av在线| 欧美丰满少妇xxxxx做受| 欧美日韩国产色视频| 日韩一二三在线视频播| 国产精品青草久久久久福利99| 欧美激情视频在线| 国产欧美在线播放| 操人视频在线观看欧美| 国产在线不卡精品| 日韩av中文字幕在线播放| 亚洲综合国产精品| 国产91精品青草社区| 欧美日韩中文在线观看| 91夜夜揉人人捏人人添红杏| 最新国产成人av网站网址麻豆| 岛国av一区二区三区| 欧美性xxxx极品高清hd直播| 国产亚洲a∨片在线观看| 欧美精品999| 亚洲精品免费一区二区三区| 中文字幕亚洲欧美日韩在线不卡| 亚洲天堂第二页| 久久久久久噜噜噜久久久精品| 国产日韩av在线| 亚洲成av人影院在线观看| 久久久免费精品视频| 国产91在线高潮白浆在线观看| 欧美高清视频一区二区| 成人欧美一区二区三区在线湿哒哒| 亚洲精品欧美日韩| 国产精品对白刺激| 综合网日日天干夜夜久久| 国产精品69久久| 国产日产欧美a一级在线| 欧美精品日韩三级| 欧美精品久久久久久久久| 欧美综合一区第一页| 精品欧美国产一区二区三区| 久久久免费精品| 国产91对白在线播放| 欧美激情图片区| 26uuu久久噜噜噜噜| 久久精品国产清自在天天线| 久久久久久久久久久成人| 欧美黄色www| 2018日韩中文字幕| www.亚洲男人天堂| 亚洲国产小视频| 91久久国产综合久久91精品网站| 91久久久久久久久久|