准前后端分离的Session机制
Spring Boot + Ext JS的准前后端分离架构,Cmd 使用JSP作为模板文件进行Build, 通过JSP 的Session对象进行前后端连接的控制。
JSP 的Session机制大致是,在浏览器访问服务端的时候,服务端对针对此客户端创建一个Session对象,此Session对象中可以存储前端验证通过的用户相关信息,服务器将Session的ID发送个浏览器,浏览器保存该ID,在每次访问服务端的时候都会带上此ID。有几种状况,该Session会失效:
- 服务端原因:超过后端设置的Session超时时间设置,浏览器端再使用该Session ID就会认为是无效。 Session的超时设置可以在应用服务器或是应用的配置文件中进行设置。
- 客户端原因: 在浏览器端清除了该Session ID,再此访问时从服务端获取的就是一个新的Session 对象的ID,这个Session对象没有用户相关信息,除非重新登录。
Session失效的场景
需要和服务端交互才能知道是否超时,如果仅仅是前端视图的切换,不调用后端服务,则无法感知Session已经失效。所以在典型的Ext JS应用中,会出现Session失效的场景有