1. 程式人生 > >Java中Session和Cookie的區別

Java中Session和Cookie的區別

Cookie資料儲存在客戶端,Session資料儲存在伺服器端。

Session是由應用伺服器維持的一個伺服器端的儲存空間,使用者在連線伺服器時,會由伺服器生成一個唯一的SessionID,用該SessionID 為識別符號來存取伺服器端的Session儲存空間。而SessionID這一資料則是儲存到客戶端,用Cookie儲存的,使用者提交頁面時,會將這一SessionID提交到伺服器端,來存取Session資料。這一過程,是不用開發人員干預的。所以一旦客戶端禁用Cookie,那麼Session也會失效。

Cookies是屬於Session物件的一種。但有不同,Cookies不會佔伺服器資源,是存在客服端記憶體或者一個Cookie的文字檔案中;而Session則會佔用伺服器資源。所以,儘量不要使用Session,而使用Cookies。但是我們一般認為Cookie是不可靠的,Cookies是儲存在本機上的,但是其資訊的完全可見性且易於本地編輯性,往往可以引起很多的安全問題Session是可靠地。但是目前很多著名的站點也都用Cookie。

有時候為了解決禁用Cookie後的頁面處理,通常採用url重寫技術,呼叫Session中大量有用的方法從Session中獲取資料後置入頁面。