大家web开发时候会经常遇到这两个概念,对于一些初学者可能还分不清这两者之间的关系。
我这里举个例子:
比如有一家理发店,理发店有个前台的柜子。 然后你有理发的VIP卡号。
对于cookie模式,就是你会员卡放到你自己的身上,你去理发的时候你拿出你卡号,就给你打折,认出了你。
对于session模式,就是你去理发的时候,你的卡号都在理发店柜台那里。 然后柜台就是session,每个session都有一个sessionId,当然也会过期。然后对比看看这个session是不是你的。
关于安全性:
显然,对于cookie来说,安全性是没有那么高的。因为卡容易被客户伪造。同样的,cookie的信息保存在游览器,是不安全的。因为是保存在客户端。而对于session来说,相当于你的会员卡放在理发店前台,理发店有专门的柜子帮你保存,这样东西是不容易丢,保存在服务器的session是安全的。
关于实现原理:
一句话概括:
session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
最后写一下代码实现:
Cookie:
Cookie c = new Cookie("user","Tom");
response.addCookie(c);
Session:
HttpSession session = request.getSession();
void session.setAttribute(String name,Object boj);
//获取绑定对象
Object session.getAttribute(String name);
//移除绑定对象
void session.removeAttribute(String name);
好了,就大致回忆一下,希望对大家有帮助哦