您的位置:首页 > 其它

对cookie技术、session技术的简单总结,以及对比

2012-11-08 20:41 316 查看
Cookie小结

① Cookie在服务端创建 Cookie cookie = new Cookie(name,value);

② Cookie是保存在浏览器这端 response.addCookie(cookie);
③ Cookie的生命周期可以通过cookie.setMaxAge(int second)来设置 Cookie默认生命周期是会话级别(即存储在浏览器的内存中) 如果没有设置setMaxAge()则该cookie的生命周期当浏览器关闭时就挂了,setMaxAge(0) +response.addCookie(cookie),相当于删除Cookie 此时如果cookie文件内部只有该Cookie则,文件也一并删除;否则只删除该Cookie

④ Cookie可以被多个浏览器共享

⑤ 一个web应用可以保存多个cookie(放置在同一个文件内部) ,最多不要超过20个,每个Cookie的大小限制为4kB,因此Cookie不会塞满你的硬盘更不会被作为"拒绝服务"的攻击手段。浏览器一般保存的Cookie不会超过300个

⑥ Cookie存放中文,出现的乱码问题 存放String val = java.net.URLEncoder.encode("中文名称","utf-8"); Cookie cookie = new Cookie("name","val"); 读出 String val = java.net.URLDecoder.decode

(cookie.getValue("name"),"utf-8"); out.println("name="+val)

session小结:

① Session是存放在服务器的内存中

② 一个用户浏览器,独享一个session域对象

③ Session中的属性的默认生命周期是30min,可以通过web.xml来修改

④ Session中可以存放多个属性(包括对象)

⑤ 如果session.setAttribute(name,value);中name相同,则会替换掉。

Session VS Cookie :

1.存储位置不同: Cookie存在在客户端(临时文件夹) Session存在服务器内存中,一个session域对象为一个用户浏览器服务

2.安全性: Cookie以明文方式存放在客户端,安全较弱,可以通过MD5加密算法在存放 Session存放在服务器端内存中,所以安全性较好

3.网络传输量: Cookie会传递信息给服务器 Session的属性值不会给客户端

4.生命周期: Cookie的声明周期是累计时间 Session的生命周期是访问session的间隔时间,在一些情况下session也会失效关闭tomcat,reload web应用,时间到,调用invalidate()[安全退出]

5.从访问范围 :Session为一个浏览器独享 Cookie为多个用户浏览器共享 因为session会占用服务器的内存,因此不要向session存放过多、过大的对象,会影响性能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: