session到底是儲存在客戶端還是伺服器端

時間 2021-10-14 21:29:16

1樓:zhurenyan水瓶

session儲存在伺服器的記憶體中。

瀏覽器第一次訪問伺服器會在伺服器端生成一個session,有一個sessionid和它對應。它儲存在伺服器的記憶體中,tomcat的standardmanager類將session儲存在記憶體中,也可以持久化到file,資料庫,memcache,redis等。

客戶端只儲存sessionid到cookie中,而不會儲存session,session銷燬只能通過invalidate或超時,關掉瀏覽器並不會關閉session。

session機制

session機制是一種伺服器端的機制,伺服器使用一種類似於雜湊表的結構(也可能就是使用雜湊表)來儲存資訊。

當程式需要為某個客戶端的請求建立一個session時,伺服器首先檢查這個客戶端的請求裡是否已包含了一個session標識——稱為session id,如果已包含則說明以前已經為此客戶端建立過session,伺服器就按照session id把這個session檢索出來使用(檢索不到,會新建一個)。

如果客戶端請求不包含session id,則為此客戶端建立一個session並且生成一個與此session相關聯的session id,session id的值應該是一個既不會重複,又不容易被找到規律以仿造的字串,這個session id將被在本次響應中返回給客戶端儲存。

2樓:gsd美容

1.session的確是存在於伺服器端的

2.一般如果沒有設定 session 的生存週期,則 session id 儲存在記憶體中,關閉瀏覽器後該 id 自動登出,重新請求該頁面後,重新註冊一個 session id。 如果設定了,就按你設定的時間來執行

至於你出現的現象,比較怪,你可以檢查一下你自己的**,有沒有設定session週期,個人經驗覺得儘可能的設定session週期,以免不同的瀏覽器解釋**的方法不一樣

3樓:匿名使用者

我們一般用的session可以基於cookies和cookieless,前者是將身份標識放在cookies裡面,後者是跟在url裡作為get傳遞的引數..我們普遍用的前者

第1個問題,你賦值一個session, 此時這個session對應的值是存在伺服器端,客戶端無法直接獲取這個值的..每個session物件都有一個sessionid的屬性,表明了該session的唯一性,客戶端會生成1個名稱為aspnetsessionid(asp.net環境下大概是這個,你可以在firefox的cookies列表中檢視到)的cookies,和伺服器端的sessionid對應,伺服器端只有接受到這個cookies的值才能判斷該瀏覽者對應於哪個session..

所以你第1個問題就回答完了.

第2個問題,過了超時時間才會失效,伺服器端永遠不會主動去聯絡客戶端看對方是否超時,只是建立session物件時會有一個過期時間,超過過期時間對應的客戶端還沒有訪問,則會清空session物件..至於你說的不同瀏覽器的問題,暫時沒遇到過

4樓:匿名使用者

同求~~網購中的購物車我感覺肯定不是放在session中的。 如果放在session中**每天多少人訪問那個伺服器肯定不知道崩潰多少次.....有沒有可能是放在cookie中呢?

session儲存在客戶端還是伺服器端?

session到底是存放在客戶端還是伺服器的

5樓:風裡千尋天枰

30 ~ 90 m

具體時間看業務需求來決定,當然有些企業有規定說session 時間不能超過 20 分鐘的

沒有特殊情況,請不要設 0,-1 之類的

碰到過一個系統,就是這樣死的……

請問cookie和session記錄是在客戶端還是伺服器端?

6樓:嘸媧韥耿涷世

cookie在客戶端,session在伺服器端

session是服務端還是客戶端

7樓:司馬刀劍

我們一般用的session可以基於cookies和cookieless,前者是將身份標識放在cookies裡面,後者是跟在url裡作為get傳遞的引數..我們普遍用的前者

第1個問題,你賦值一個session, 此時這個session對應的值是存在伺服器端,客戶端無法直接獲取這個值的..每個session物件都有一個sessionid的屬性,表明了該session的唯一性,客戶端會生成1個名稱為aspnetsessionid(asp.net環境下大概是這個,你可以在firefox的cookies列表中檢視到)的cookies,和伺服器端的sessionid對應,伺服器端只有接受到這個cookies的值才能判斷該瀏覽者對應於哪個session..

所以你第1個問題就回答完了.

第2個問題,過了超時時間才會失效,伺服器端永遠不會主動去聯絡客戶端看對方是否超時,只是建立session物件時會有一個過期時間,超過過期時間對應的客戶端還沒有訪問,則會清空session物件..至於你說的不同瀏覽器的問題,暫時沒遇到過

jsp中 session 是儲存在客戶端還是伺服器端?

8樓:匿名使用者

伺服器端

最好的例子就是你登陸了一個**後,只要不完全關閉這個**的頁面,你登陸的狀態就不會消失

jsp中session不是儲存在伺服器嗎,servlet中 request.getsession 得到的是客戶端?還是

9樓:匿名使用者

request.getsession是在伺服器端執行的,意義相當於用request中儲存的sessionid,去伺服器的記憶體裡找到對應的session,而不是從request中取出session物件

10樓:匿名使用者

session是儲存在伺服器端的,jsp實質也是servlet,是tomcat等容器自動編譯成servlet的類檔案來執行的。所以 servlet中的request、session和jsp中的是指的一樣的東西。

11樓:小寶本兒

在jsp中session是個內建物件。

而在servlet中想使用session就要先得到session。方法如下:

在jsp中或是在servlet中session物件使用方法一樣,而且放在session中的資料都是儲存在伺服器端的。

將session物件儲存在map中,當session物件

我的思路是 map裡有你要存的東西,在你登入的時候把map裡的內容通過session.setattribute map map 存到session物件裡。在獲取的時候用map map map session.getattribute map 獲取。這樣只要判斷這個session是否為空即可斷定是否登...

登入之後把使用者名稱儲存在session裡還是cookie裡面

正常的話用sessionok了,因為session儲存在當前瀏覽器中的,當你關閉瀏覽器就會清除session了,如果做cookies的話,儲存在本地機子不算太安全,安全的也就是session了,推薦使用session 使用者名稱存在 不涉及安全問題。如果你希望當使用者離線後繼續能再儲存,那就用coo...

真的存在地外文明嗎?地外文明到底是否存在

有概率存在。因為宇宙這麼大,地球知識宛如一片土地上的一粒沙子而已,非常渺小,按照科學概率來講,應該是存在地外文明,但是我們至今沒有任何證據證明存在地方文明。根據現在的科學來看,應該是不存在地方文明的,人類是比較孤獨的。這個說不好哦,畢竟宇宙無窮無盡,依照人類現在的科技水平是無法全部探索到的。地外文明...