在Java Web應用程序中,Java servlet創建唯一的jsessionid,該cookie作爲cookie傳遞到客戶端瀏覽器,以跟蹤第一個請求之後的客戶端的後續請求。但是,當Cookie被禁用並且由於安全策略而不允許URL重寫時,我的理解是Java servlet會爲來自同一客戶端的每個請求創建一個新的會話對象。它是否正確?這是否意味着大量的服務器內存浪費(每個會話對象的內存分配過多,永遠不會再使用和過多的垃圾收集)?如何識別網站訪問者禁用cookie並禁止URL重寫?
一種解決方案是在這種情況下使用客戶端的IP地址和用戶代理字符串來唯一標識用戶並存儲在數據庫中。這是正確的解決方案?
以上情況在搜索引擎殭屍程序中相當常見,它們在訪問網站時通常會發出數千次頻繁的請求。
任何其他想法爲基於Java的Web應用程序的這個問題制定適當的解決方案?
很好的答案。我會加上一個壓力:你不能通過IP + USER_AGENT來識別某人。 – 2011-03-27 11:27:19