海之韵BLOG | 耿真的个人网站 | 鲁ICP备15001313号 | 本站永久网址:https://www.gengzhen.cn

cookie 和 session 区别和异同

发布:耿真(GengZhen) 2009-10-21 3:20 分类: 技术文章 这篇文章没有标签

 cookie和session机制是web中常用的跟踪技术,用来跟踪用户的整个会话。cookie通过在客户端记录信息确定用户的身份,session通过在服务器端记录信息确定用户身份。

(1)cookie机制

Java中把Cookie封装成了javax.servlet.http.Cookie类。每个Cookie都是该Cookie类的对象。服务器通过操作Cookie类对象对客户端Cookie进行操作。通过s://www.gengzhen.cn/tag/.cn/tag/re" title="">re" title="查看标签为 .cn/tag/re" title="">re 的文章">request.getCookie()获取客户端提交的所有Cookie(以Cookie[]数组形式返回),通过response.addCookie(Cookie cookie)向客户端设置Cookie。

Cookie对象使用key-value属性对的形式保存用户状态,一个Cookie对象保存一个属性对,一个s://www.gengzhen.cn/tag/re" title="查看标签为 .cn/tag/re" title="">re 的文章">.cn/tag/re" title="">request或者s://www.gengzhen.cn/tag/.cn/tag/re" title="">re" title="查看标签为 .cn/tag/re" title="">re 的文章">response同时使用多个Cookie。因为Cookie类位于包javax.servlet.http.*下面,所以JSP中不需要import该类。

Cookie中使用Unicode字符时需要对Unicode字符进行编码,否则会乱码。

Cookie的maxAge决定着Cookie的有效期,单位为秒(Second)。如果maxAge为0,则表示删除该Cookie。

(2)session机制

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。

Session对应的类为javax.servlet.http.HttpSession类。每个来访者对应一个Session对象,所有该客户的状态信息都保存在这个Session对象里。Session对象是在客户端第 一次请求服务器的时候创建的。Session也是一种key-value的属性对,通过getAttribute(Stringkey)和setAttribute(String key,Objectvalue)方法读写客户状态信息。

为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。

区别:

cookie数据存放在客户的浏览器上,session数据放在服务器上;
cookie不是很安 全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安 全应当使用session;session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE;单个cookie在客户端的限制是4K,很多浏览器都限制一个站点最多保存20个cookie。   综述:将登陆信息等重要信息存放为SESSION      其他信息如果需要保留,可以放在COOKIE中

嘻嘻大笑可怜吃惊害羞调皮鄙视示爱大哭开心偷笑嘘奸笑委屈抱抱愤怒思考日了狗胜利不高兴阴险乖酷滑稽
提交评论

清空信息
关闭评论
温馨提示本站内所有原创内容禁止转载,谢谢合作!

本页已获评论0/刷新88 次

关注耿真SEO微信公众号