session和cookie的区别

来源:互联网 发布:自救手环 淘宝 编辑:程序博客网 时间:2024/05/18 13:47
存储位置
    session是存储在服务器端,cookie是存储在客户端的,所以安全来讲session的安全性要比cookie高,
如何获取session里的信息
    我们获取session里的信息是通过存放在会话cookie里的sessionid获取的。
    又由于session是存放在服务器的内存中,所以session里的东西不断增加会造成服务器的负担,
    所以会把很重要的信息存储在session中,而把一些次要东西存储在客户端的cookie里,
cookie分类,
    cookie确切的说分为两大类分为会话cookie和持久化cookie
    会话cookie确切的说是存放在客户端浏览器的内存中,所以说他的生命周期和浏览器是一致的,浏览器关了会话cookie也就消失了,
    然而持久化cookie是存放在客户端硬盘中,而持久化cookie的生命周期就是我们在设置cookie时候设置的那个保存时间,
浏览器关闭,session会丢失么
    然后我们考虑一问题当浏览器关闭时session会不会丢失,从上面叙述分析session的信息是通过sessionid获取的,而sessionid是存放在会话cookie当中的,
    当浏览器关闭的时候会话cookie消失所以我们的sessionid也就消失了,但是session的信息还存在服务器端,这时我们只是查不到所谓的session但它并不是不存在。
session什么情况会丢失
    那么,session在什么情况下丢失,
    就是在服务器关闭的时候,
    或者是sessio过期,
    再或者调用了invalidate()
    或者是我们想要session中的某一条数据消失调用session.removeAttribute()方法,
创建session
    然后session在什么时候被创建呢,确切的说是通过调用session.getsession来创建,这就是sessioncookie的区别