cookie与session的关联
来源:互联网 发布:排队返现源码下载 编辑:程序博客网 时间:2024/06/05 17:53
前提:cookie没有被禁用。
当用浏览器登录到某网站服务器时,先找对应的cookie文件,当首次访问是当然没有cookie文件,所以在请求头部中没有cookie的内容,即在请求头部中没有类似Cookie: JSESSIONID=XXXXXXXXXXXXXXX的内容,这时当请求到达服务器后,服务器看请求头中没有JSESSIONID值,于是生成一个session对象,并由某种算法产生一个值赋给这个session的id,并将sessionid,和session对象放入HashMap中,然后将这个sessionid发回以客户端,即在响应的头部有一行:Set-Cookie:JSESSIONID=XXXXXXXXXXXXXX,浏览器解析后会将在JSESSIONID和值记录到cookie中。
如果用户登录,我们会在程序中将一些值放入session中,如request.getSession().setAttribute("username","xxxx"),下次就可根据这个值是否为空来断断用户是否已登录。
当用浏览器再次请求此网站的另一页面时,浏览器检查看有没有cookie,这时有cookie(前提是cookie没有过期),会自动的把cookie的内容附加到请求头中,即在请求头附加了一行:Cookie: JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXX,服务器接收到请求后会根据JSESSIONID的值知道sessionid的值,在tomcat中两个值是一样的,然后你可根据这个sessionid找到对应的session,可由session中登录后设定的某些值是否为空,来判断此用户是否登录。
当用户安全登出后(调用session.invalidate()),服务器会将session销毁,并生成一个新的JSESSIONID发回用客户端,浏览器接收响应后,会将cookie中的JSESSIONID换成新值,当用户再次访问此服务器时,会在请求中自动的加入新的JSESSIONID的值发到服务器,这时服务器根据JSESSIONID找不对应的session了,因此就可知道是一次新的会话,服务器会生成一个session对象,并将客户端发过来的JSESSION的值赋给这个session的id。
这时如果想再访问安全登出之前的页面,因为没有登录,所有session.getAttribute("username")的值为空,
因此可判断用户没有登录。
- cookie与session的关联
- cookie与session的区别与关联
- (十五) jemter-session,cookie与关联---学习笔记
- session与cookie的区别
- session与cookie的区别
- Session与Cookie的区别
- session与cookie的区别
- cookie与Session的区别
- session与cookie的区别
- session与cookie的区别
- cookie 与 session 的区别
- Session与Cookie的区别
- session与cookie的区别
- session与cookie的区别
- Cookie与Session 的区别
- PHP的session与cookie
- session与cookie的区别
- session与cookie的解说
- 腾讯校园之星 创新设计大赛 总结
- 开源组织的赢利方式
- LVDS接口
- mysql日志监控
- struts2中session的使用
- cookie与session的关联
- 【转载】微软公司的三道面试题
- struts2验证码使用
- struts2验证码使用
- Google Android操作系统内核编译图文教程
- struts2验证码使用
- Online Judge汇总
- struts2验证码使用
- 异常备忘:java.lang.UnsupportedClassVersionError: Bad version number in .class file