Session技術分析與理解

2021-07-31 07:44:36 字數 2768 閱讀 4698

博主俗人的理解: 伺服器端為了儲存某些資料,或實現某些必要的功能,當使用者訪問伺服器時,將資料臨時儲存在伺服器端以供完成伺服器端的其他某些功能。伺服器需要儲存的資料可以以cookie的方式儲存在客戶端,而session的功能就是將伺服器需要儲存的資料儲存在服務端。例如賬號登入記錄的功能,可以以session的方式將登入狀態儲存在伺服器端,這樣當使用者訪問其他程式時,需要用到登入的地方,都可以從該使用者的session中取出該使用者的資料,為使用者服務。

2.session和cookie的區別

cookie是將使用者的資料寫給客戶端(瀏覽器) 

session是把使用者資料寫到伺服器中使用者獨佔的session裡

3.session的原理

session的底層是基於cookie技術來實現的,當使用者開啟瀏覽器,去訪問伺服器的時候,伺服器會為每個使用者的瀏覽器建立乙個會話物件(session物件),並且為每個session物件建立乙個jsessionid號。當session物件建立成功後,會以cookie的方式將這個jsessionid號回寫給瀏覽器,當使用者再次進行訪問伺服器時,及帶了具有jsessionid號的cookie資料來一起訪問伺服器,伺服器通過不同session的 jsessionid號來找出與其相關聯的session物件,通過不同的session物件來為不同的使用者服務。

4.session的使用方法

demo1:將name儲存到session裡再將name從session裡面取出來

response.getwriter().write("已經將名字儲存在session中");

response.getwriter().write("sesson的值為"+name);

demo2:由於session的生效期為乙個會話(及關閉瀏覽器就無法獲得name值),但前面說了,session的內部原理為回寫jsessionid號作為標識,則我們可以覆蓋回寫cookie的操作,設定cookie的有效期,同時也改變了session有效期(最大半小時),這樣即使關閉瀏覽器,再次開啟瀏覽器也能獲取到name值。

response.getwriter().write("已經將名字儲存在session中");

response.getwriter().write("sesson的值為"+name);

demo3: 由於有些使用者瀏覽器可能禁止cookie的使用,導致我們的session失效了,我們面對這種情況可以採取url重寫的方式,及在每個超連結背後接入jsessionid.(此種方法關閉會話瀏覽器後無效)

5.session使用需注意的細節

在internet explorer7之前,開啟乙個瀏覽器為乙個會話,session的作用域為乙個瀏覽器。但目前瀏覽器版本,即使開啟兩個瀏覽器,他們共享session物件。

乙個瀏覽器的多個選項卡,共享乙個session物件。

session的有效期最大為半個小時,及客戶端半小時內無任何操作,伺服器將會把該session物件摧毀。

session的回寫cookie的id名字為:jsessionid

會話技術Cookie與Session

從開啟乙個瀏覽器到訪問某個站點,到關閉這個瀏覽器的整個過程,成為一次會話。會話技術就是記錄這次會話中客戶端狀態與資料的 會話技術分為cookie和session cookie 資料儲存在客戶端本地,減少伺服器端的儲存壓力,安全性不好,客戶端可以清除cookie session 將資料儲存在伺服器端,...

簡單理解cookie與session

web應用程式的請求與響應基於http,為無狀態的通訊協議。當使用者的一次訪問請求結束後,後端伺服器就無法識別下一次來訪問的是否為上一次的使用者。cookie作為在瀏覽器儲存資訊的一種方式,使用者通過對cookie的設定和讀取,可以保持與後端伺服器的互動狀態。隨著cookie個數的增多和訪問量的增加...

Web技術 Token與Session究竟是什麼呢

在web中,我們經常說session,token,cookie。這三個內容,究竟啥區別,為什麼會有這三個內容呢?這就是我們今天想要討論的。洋洋 琪琪,你們原先的開發 許可權是怎麼認證的?琪琪 許可權?不就是 嘛?通過攔截不同的url,進行攔截,然後進行校驗。洋洋 那你們用過shiro嘛?進行許可權校...