在Web开发中,我们经常接触的就是session了;这里不说session和cookie;只讲服务器怎么确定用户的session;
http协议本身是无状态协议,那后台是怎么确定用户的session呢?
这里以shiro的web开发为例,因为shiro的request和session只是对标准的request和session进行了封装,在
DefaultWebSessionManager中,下面的方法就是在request中获取sessionId的过程
1.先从浏览器传过来的cookie中获取,找不到的话,
2.再从url里获取,这就是我们常说的当用户禁用了cookie之后,可以通过URL重写来做,就是把sessionId直接附加在URL路径的后面;
3.还找不到的话,就从参数中获取,也就是我们常说的将sessionId隐藏在表单中,也就是表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。