由於http協議的無狀態,這就使得無法在兩個不同的請求之間共享資訊,如無法記錄「當前訪問者」的資訊。雖然在登入過程已經驗證了使用者的使用者名稱與密碼是正確的,但是當使用者跳轉到其他頁面時,從登入頁面獲得的使用者資訊全部丟失,這是使用者不希望發生的。同時,要求使用者進入每乙個頁面時都要輸入使用者名稱與密碼進行驗證又是不現實的,這就要求可以在不同頁面之間共享資訊。
一般來說,對於php以及其他的web程式語言,可以使用cookie或者是session來解決這個問題。
cookie是儲存在客戶端的乙個小檔案,可以將一些需要在頁面間共享的資料儲存在這個檔案中。但cookie有3個缺點:一是大小不可以超過4kb(不同的瀏覽器可能限制不同),二是使用者可以在瀏覽器設定中禁用cookie,三是cookie是在客戶端記錄資料安全性較差。
session一般是通過cookie來實現的,如果使用者禁用了cookie,session也同樣失效。不同於cookie的是,session只是把乙個資訊的標識通過cookie放在客戶端而實際的資訊卻存放在伺服器上,這樣安全效能上有較大的提高。現在也有另外一種不通過cookie而使用session的方法,即url重寫技術。這種方法是將session的標識作為url的引數與服務進行互動,其好處是不受客戶端對cookie禁用的限制,缺點是使用起來較為麻煩。
在php中使用session非常簡單。php提供了乙個自動全域性變數$_session用於處理 session。但是需要注意的是,如果在php的配置檔案中沒有設定自動啟動session的話,在使用session之前一定要呼叫 session_start()函式啟動session。
再次開啟login.php,新增以下以粗體顯示的**,以記錄使用者資訊。
不要濫用 session,session最大的作用是在頁面之間維持狀態。許多初學者在掌握session技術後,很容易將session作為儲存資料的法寶,在 session裡放置很多資料。由於這些資料直到session過期才會被釋放,因此會給伺服器帶來很大的負擔。
使用session儲存資訊
session物件可以儲存和讀取客戶資訊,到客戶關閉瀏覽器或長時間不傳送請求時釋放。簡單的說就是,session物件儲存的資訊是跨頁面的,儲存上了就一直有。在.jsp頁面中儲存account資訊 account type text value session.setattribute account...
使用者資訊認證session和token
在進行使用者資訊認證之前,我們需要先知道兩個知識點 1 http是無狀態協議。所以,在進行資訊認證時,我們需要引入狀態機制,也就是session機制。2 cookie,與網域名稱有關,網域名稱不變,cookie不變。也就是說,在同一網域名稱下,請求各種資源都會攜帶cookie回後端。下面來談談兩種認...
使用者登入儲存使用者資訊,退出清理使用者資訊
1.使用sessionstorage的時候 登入時儲存使用者的登入資訊 如果只是想單純的儲存使用者的token或者id的話可以這樣寫 window.sessionstorage.setitem userid result.data.userid window.sessionstorage.setit...