Session
在計算機中,尤其是在網(wǎng)絡(luò)應用中,稱為“會話控制”。Session 對象存儲特定用戶會話所需的屬性及配置信息。這樣,當用戶在應用程序的 Web 頁之間跳轉(zhuǎn)時,存儲在 Session 對象中的變量將不會丟失,而是在整個用戶會話中一直存在下去。
當用戶請求來自應用程序的 Web 頁時,如果該用戶還沒有會話,則 Web 服務器將自動創(chuàng)建一個 Session 對象。當會話過期或被放棄后,服務器將終止該會話。
注意 會話狀態(tài)僅在支持 cookie 的瀏覽器中保留。
會話實現(xiàn)原理
session會話的實現(xiàn)原理大概如下所示:
- 用戶A第一次進入,沒有附帶任何標識信息(通常是cookie)
- 服務端接收請求,給與用戶A一個會話標識(通常是set_cookie,cookie值將加密)
- 服務端根據(jù)會話標識,在服務器本地存儲用戶信息
- 用戶A端獲取到會話標識,存儲到用戶端本地
- 用戶A第二次請求,附帶會話標識(通常是cookie)
- 服務端通過會話標識,找到服務端相應的用戶信息
php中的session
php已經(jīng)內(nèi)置封裝好了一個功能完整的會話管理,基礎(chǔ)用法為:
<?php
session_start();//啟動新會話或者重用現(xiàn)有會話,發(fā)送set-cookie的響應頭,告訴瀏覽器設(shè)置一個php_session的cookie 會話,會話id為php隨機產(chǎn)生,并在服務器端臨時目錄產(chǎn)生一個對應的session文件
$_SESSION['a'] = 1;//存儲一個關(guān)于該會話id的值
session_destroy();//銷毀會話數(shù)據(jù)
//當在腳本結(jié)束時,會將超全局變量$_SESSION中的值存儲進對應的session文件
可自行搜索了解詳細內(nèi)容(如自定義session_id,自定義存儲方式,自定義啟用會話方式等)