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