概念
Cookie
- Cookie的作用荠割?
Cookie可以讓服務(wù)器程序跟蹤每個客戶端的訪問幻锁。
- “Set-Cookie” 響應(yīng)頭遵绰,各種字段
- Tomcat 如何創(chuàng)建 Set-Cookie 響應(yīng)頭?
- 使用Cookie的限制
瀏覽器對Cookie的存儲都有一些限制涌攻,每個域名下的數(shù)量限制和總大小限制揍诽。
Session
-
Session的作用诀蓉?
Cookie可以讓服務(wù)器程序跟蹤每個客戶端的訪問,但每次客戶端的訪問都需要傳回這些Cookie,如果Cookie很多暑脆,則增加了客戶端與服務(wù)端的數(shù)據(jù)傳輸量渠啤,而Session的出現(xiàn)正是為了解決這個問題。每一次交互時添吗,只要傳回一個ID沥曹,這個ID是客戶端第一次訪問服務(wù)器時生成的,而且每個客戶端是唯一的,在Servlet容器里妓美,這個ID通常是Name為JSESSIONID的一個Cookie僵腺。
-
Session基于三種方式工作
URL Path Parameter
Cookie
SSL Session的第一次創(chuàng)建是通過觸發(fā) request.getSession() 方法。
-
Tomcat中的Session 持久化
當Servlet容器關(guān)閉時壶栋,StandardManager類會調(diào)用unload方法將sessions集合中的StandardSession對象寫到“SESSIONS.ser” 文件中辰如。注意關(guān)閉容器時必須調(diào)用Servlet容器的stop和start命令,而不能直接kill進程贵试。
如果不希望使用這個特性琉兜,在conf/context.xml中配置<Manager pathname="" /> 即可。 -
Session對象的有效期設(shè)置
- Web容器級別.
conf/web.xml <!-- 這里是以分鐘為單位的毙玻,默認是30分 --> <session-config> <session-timeout>30</session-timeout> </session-config>
- webapp級別
在webapp中的 WEB-INF/web.xml <!-- 以分鐘為單位 --> <session-config> <session-timeout>30</session-timeout> </session-config>
- 硬編碼在應(yīng)用程序代碼中
session.setMaxInactiveInterval(30*60);//以秒為單位
以上設(shè)置為-1即session不過期豌蟋。
參考資料
- 《深入分析Java Web技術(shù)內(nèi)幕 修訂版》
- Tomcat設(shè)置session超時的幾種方式 link