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