先说说cookie的特点吧?如下:
1、首先cookie是在服务器端创建,然后保存在浏览器中的
2、cookie可以被多个浏览器共享,这句话怎么理解呢?就是你在IE浏览器中保存的对象(用户名,密码)也可以在其他浏览器中访问到,如火狐,qq浏览器等!
3、如果cookie重名的话就会替换掉前一个cookie,也就是我们所说的覆盖掉了!
4、cookie可以保存多个cookie,但是保存在同一个cookie文本客户端浏览器下
5、cookie是以明码的方式存放的,安全性比较低
6、cookie只能存放字符串
说了6点关于cookie,我们再来说说session的特点,再进行比较吧!
1、session是存在服务器中的
2、一个浏览器只能访问一个session对象
3、session中的属性生命周期默认是30min
4、session可以存放对象
5、如果session。setAttribute("name",val)名字相同会替换掉该属性
现在我总结一下二者的区别吧:
① 存在的位置
cookie:存在客户端的临时文件夹
session:存在服务器内存中,一个session域对象为一个用户浏览器服务
② 安全性
cookie:是以明文的方式放在客户端的,安全性弱,可以通过(MD5)加密再存放。
session:是存放在服务器内存中,所有安全性好
③ 网络传输
cookie:会传递信息给服务器
session的属性值不会给客户端
④ 生命周期
cookie的生命周期:是累计时间,即如果我们给cookie设置setMaxAge(30),则30秒后失效。
session的生命周期:是间隔时间,如我们设置session20min,指在20min内,如果没有访问session,则session失效(session失效是指无法读取session属性),
在以下情况session也会失效
(1)关闭tomcat (2)reload web应用 (3)时间到 (4) 调用invalidate方法
⑤ 访问范围
cookie:为多个用户浏览器共享。
session:为一个用户浏览器独享。
⑥ 使用原则
因为session会占用服务器的内存,因此不要向session中存放过多过大的对象,会影响性能。