會話保持和非會話保持

會話保持:

方式:

1、session機制保持會話

缺點:

1.1當前服務器處於高併發的時候,對於服務器是一個壓力,佔用大量的服務器資源。

1.2如果一個業務系統是分佈式部署在多個服務器的情況下,session不能相互間共享。

解決方式:

1.3高併發的時候可以將session存儲到redis,如果用戶長時間沒有訪問,將session存儲到redis,就減少了服務器的壓力。

1.4分佈式或者集羣的時候,先通過redis來判斷用戶狀態也可以實現session共享.

2、cookie機制保持會話

登錄驗證後,創建登錄憑證(比如:用戶id+登錄時間+過期時間),將登錄憑證進行加密(爲了避免暴露信息),加密後寫到瀏覽器的cookie,以後,每次請求都發送cookie,服務器根據對應的解密算法對其進行驗證(或者將加密過的cookie內容存儲到數據庫,請求服務器的時候,服務器在數據庫進行查找)。

缺點:

2.1每次訪問都提交cookie,增加請求量

2.2其他訪問可能需要cookie(比如說購物車的信息存放在cookie),瀏覽器對每個域存儲的cookie的大小有限制,那麼需要控制加密後的憑證。

3、token機制保持會話

cookie 和session依賴於瀏覽器,如果客戶端不是瀏覽器,那麼需要手動添加token(和cookie類似,也是登錄憑證),將token添加到http header或者做爲參數添加到url。

缺點:

3.1每次訪問的時候手動添加token

3.2和cookie 的方式一樣增加了請求量

 

區別:

不同方式使用不同的應用場景

相同點:

1、所有的方式都是爲了驗證用戶的狀態

2、都需要在客戶端存儲憑證

不同點:

第一種是通過空間換時間,消耗內存存儲session對象,但是判斷用戶狀態不用複雜的邏輯。第二種第三種用時間換空間,在服務器端邏輯處理進行判斷用戶狀態。

 

會話保持應用場景:

比如一個淘寶網站,你在登錄了設備之後,點擊其他頁面(比如我的購物車),這個時候發現又需要再次登錄才能查看,再點擊其他界面(比如我的訂單)又需要重新登錄。用戶體驗不佳,這個時候就需要用到會話保持。

 

會話(連接)刪除機制:

負載均衡設備都有一個會話/連接的時間限制,目的是設備性能決定,畢竟設備的最大併發連接數是有限的。

    

非會話保持:

不需要登錄網站進行的操作,比如瀏覽新聞網站。常見策略:輪詢等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章