session的生命周期,session何时创建,何时销毁,session销毁的方式

session 的生命周期:

    Session 存储在服务器端,一般为了防止在服务器的内存中(为了高速存取),Sessinon 在用户访问第一次访问服务器时创建,需要注意只有访问 JSPServlet 等程序时才会创建 Session , 只 访 问 HTML 、 IMAGE 等 静 态 资 源 并 不 会 创 建 Session , 可 调 用 request.getSession(true)强制生成 Session

Session 什么时候失效?

    1. 服务器会把长时间没有活动的 Session 从服务器内存中清除,此时 Session 便失效。 Tomcat 中 Session 的默认失效时间为 20 分钟。 

    2. 调用 Session 的 invalidate 方法。

session存在的问题

    安全性,session劫持,这是一种通过获取用户Session ID后,使用该Session ID登录目标账号的攻击方法;

    增加服务器压力,因为session是直接存储在服务器的内存中的;

如果存在多台服务器的话,还存在session同步问题,当然如果只有一台tomcat服务器的话,也就没有session同步的事情了,然而现在一般的应用都会用到多台tomcat服务器,通过负载均衡,同一个会话有可能会被分配到不同的tomcat服务器,因此很可能出现session不一致问题;解决session同步问题,实际上主要是保证能够抽离出一块共享空间存放session信息,且这块空间不同的tomcat服务器都可以访问到;一般这块共享的空间可以是数据库,或者某台服务器的内存空间,甚至硬盘空间,或者客户端的cookie也是可以的

原文地址:https://www.cnblogs.com/KingAndPig/p/13963657.html