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