Session和Cookie的区别
区 别 | session | cookie |
---|---|---|
存在 | Cookie是客户端技术,通常保存在客户端,即本地,IE浏览器把Cookie信息保存在类似于C:\windows\cookies的目录下。因为Cookie在客户端所以可以编辑伪造,不是十分安全 | Session是服务器端技术,在服务端,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务 |
存储数据 | 只能存储 String 类型的对象 | 能够存储任意的 java 对象 |
性能 | Cookie存在客户端对服务器没影响 | Session过多时会消耗服务器资源,大型网站会有专门Session服务器 |
作用域 | Cookie通过设置指定作用域只能在指定作用域有效 | Session在整个网页都有效 |
作用时间 | Cookie可以通过 setMaxAge设置有效时间,即使浏览器关闭了仍然存在 | 关闭网页Session就结束了 |
总结:总体来说,session更加的安全,按时因为其将sessionID保存在服务器端,所以用户量大的话会讲的浏览数读,所以综上所诉,浏览量大用且没有特殊的安全需求用Cookie,如果浏览量不是很多的话,用session。
session和Cookie使用方法:
session:
创建
HttpSession session=request.getSession();
session.setAttribute("name", "session");
这里我创建了一个值为session,名为name的sessionID。
获取及销毁:
HttpSession session = req.getSession();
session.removeAttribute("name");//从session删除指定名称的绑定对象
//也可以用session.invalidate()销毁全部的session