無狀態能夠僅用不多的對象就能夠處理不少的用戶,空閒狀態的用戶越多,無狀態服務器就越有用web
相關性:會話狀態只與當前會話有關,它存在於業務事務中,與其餘會話及他們的業務事務是分開的;數據庫
與記錄數據信息的區別:記錄數據時長期保存在數據庫中的持久化數據,它對全部會話可見,會話狀態須要提交成爲數據庫中的記錄;安全
最大問題:出如今處理隔離性的時候(同時操做,或者相關聯操做)服務器
不能把會話中全部數據都當作是會話狀態cookie
客戶會話狀態:在客戶端保存數據(在web中可用url、cookie、hidden域等)網絡
適用場景:會話數據較少、用戶常常取消會話(如B2C用戶直接關閉站點消失)url
問題:安全性、完整性代理
服務器會話狀態:在服務器內存、文件系統、一張簡單的數據庫表(以會話標識號爲key、以已序列化對象爲值)對象
優勢:容易直接訪問會話狀態事務
數據庫會話狀態:在服務器端存儲(將數據分解爲多個表和域)
優勢:狀態持久化不易丟失
問題:隔離性差(須要將會話數據與記錄數據相隔離)
以上3種模式並不相互排斥,能夠混合使用。使用時,還須要注意:客戶機崩潰、服務器死掉、網絡鏈接斷掉
會話遷移:容許一次會話從一臺服務器轉移到另外一臺服務器,從而能夠有一臺服務器處理一個請求,其餘服務器處理其餘請求
優勢:可均衡服務器
缺點:難以找到會話狀態,難以支持會話遷移
服務器親和:某次特定會話的全部請求只能由一臺服務器處理
缺點:當客戶端有使用代理是,可能會有大量負載集中在某臺服務器上