session cookie 在使用者登入中的使用

2022-05-26 12:06:12 字數 1458 閱讀 5520

cookie的機制:

cookie是瀏覽器(user agent)訪問一些**後,這些**存放在客戶端的一組資料,用於使**跟蹤使用者,實現使用者自定義功能。

cookie的domain和path屬性標識了這個cookie是哪個**傳送給瀏覽器的;cookie的expire屬性標識了cookie的有效時間(如果不設定過期時間,則表示這個cookie生命週期為瀏覽器會話期間,只要關閉瀏覽器視窗,cookie就消失了。即會話cookie,會話cookie儲存在記憶體裡;設定了expire的cookie儲存在硬碟上,儲存在硬碟上的cookie可以在不同的瀏覽器程序間共享)。

session的機制:

session是存放在伺服器端的類似於hashtable結構。

當瀏覽器第一次傳送請求時,伺服器自動生成乙個hashtable和乙個sessionid,然後通過響應傳送到瀏覽器。

當瀏覽器第二次傳送請求時,會將sessionid放在請求中一併發送到伺服器上,取出sessionid,找到hashtable 對比。

session的客戶端實現形式(即sessionid在客戶端的儲存方法):

方法一:使用cookie來儲存(「記住我的登入狀態」功能就是這麼實現的)

伺服器通過設定cookie的方式將session id傳送到瀏覽器。如果我們不設定這個過期時間,那麼這個cookie將不存放在硬碟上,當瀏覽器關閉的時候,  cookie就消失了,這個session id就丟失了。如果我們設定這個時間為若干天之後,那麼這個cookie會儲存在客戶端硬碟中,即使瀏覽器關閉,這個值仍然存在,下次訪問相應**時,同 樣會傳送到伺服器上。

方法二(不常用):使用url附加資訊的方式,也就是像我們經常看到jsp**會有aaa.jsp?jsessionid=*一樣的。這種方式和第一種方式裡面不設定 cookie過期時間是一樣的。

方法三(不常用):是在頁面表單裡面增加隱藏域,這種方式實際上和第二種方式一樣,只不過前者通過get方式傳送資料,後者使用post方式傳送資料。但是明顯後 者比較麻煩。

實現「記住我的登入狀態」的功能

其實這已經很好的實現了我們的功能了。但是,前面也提到了,實際上session並不會一直都存在的,過了一定的時間之後,伺服器上的session就被 銷毀了,以減輕伺服器的訪問壓力。當伺服器上的資料被銷毀後,即使客戶端上存放了cookie也沒有辦法「記住我的登入狀態」了。

通常的實現辦法是,將使用者的使用者名稱和加密之後的密碼也通過cookie的方式存放在客戶端,當伺服器上的session銷毀以後,使用cookie裡面存放的使用者名稱和加密之後的密碼重新執行一次登入操作,重建session,並更新客戶端上cookie中存放的sessionid。

多點登入問題怎麼解決?

為每個登入的使用者分配乙個唯一的令牌,比如guid,客戶端的請求必須提供這個令牌,
這樣當同乙個使用者再次登陸時,使用者對應的令牌被重寫,前乙個客戶端的令牌失效,自然就被踢了

會話技術 session cookie

定義 會話跟蹤是web程式中常用的技術,用來跟蹤使用者的整個會話,乙個使用者的所有請求操作都應屬於同乙個會話 常用的會話跟蹤技術是cookie與session。解決問題 用於解決身份識別問題 cookie 通過在客戶端 記錄資訊確定使用者身份,session 通過在伺服器端 記錄資訊確定使用者身份。...

Session Cookie相關知識

session,cookie是b s中最常見的元素,除了只支援wap1.0的手機,部分不支援cookie,因此session客戶端也一般存到url上,或者客戶端禁止cookie,但現在一般不手工禁止cookie。下面對它們的區別做個簡單的介紹,這裡涉及具體配置就用.net環境下的配置介紹,不同語言思...

Session Cookie簡單理解

session session是一種記錄客戶狀態的機制,session是儲存在伺服器上的,當瀏覽器訪問伺服器的時候,伺服器把客戶端資訊以某種形式記錄在伺服器上,這就是所謂的session,當瀏覽器再次訪問的時候從該session中查詢客戶的狀態就可以了。看到乙個很經典的描述session的話 ses...