11 Session介紹
Session在網(wǎng)絡(luò)應(yīng)用中,稱為“會話控制”菌赖。Session對象存儲特定用戶會話所需的屬性及配置信息缭乘,如登錄信息等(Session是一個容器,可以存放會話過程中的任何對象)琉用。Session機制采用的是在服務(wù)器端保持狀態(tài)的方案堕绩。
對于 Cookie 來說,假設(shè)我們要驗證用戶是否登陸邑时,就必須在 Cookie 中保存用戶名和密碼奴紧,并在每次請求頁面的時候進行驗證。而Session 是存儲在服務(wù)器端的晶丘,遠程用戶沒辦法修改 Session 文件的內(nèi)容黍氮,因此我們可以單純存儲一個變量來判斷是否登陸,首次驗證通過后設(shè)置變量值為 true,以后判斷該值是否為 true沫浆,假如不是觉壶,轉(zhuǎn)入登陸界面,這樣可以減少每次為了驗證 Cookie 而傳遞密碼的不安全性了件缸。
SessionID是服務(wù)器給客戶端的一個編號。當一臺WWW服務(wù)器運行時叔遂,可能有若干個用戶訪問這臺服務(wù)器上的網(wǎng)站他炊。當每個用戶首次與這臺WWW服務(wù)器建立連接時,就與這個服務(wù)器建立了一個Session已艰,同時服務(wù)器會自動為其分配一個SessionID痊末,用以標識這個用戶的唯一身份。這個SessionID是由WWW服務(wù)器隨機產(chǎn)生的一個由24個字符組成的字符串哩掺。
服務(wù)器鑒別Session需要至少從客戶端傳來一個SessionID凿叠,SessionID通常存于Cookie中,客戶端向服務(wù)端發(fā)送請求時嚼吞,會將用戶的SessionID附加在Cookie中盒件。Session的創(chuàng)建和使用總在服務(wù)端,客戶端真正拿到的是SessionID舱禽。