Cookie和Session的区别与使用
一、Cookie与Session的区别
区别
Cookie
Session
存在
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就结束了
Cookie注意细节:
1.一个Cookie只能标识一种信息,它至少包含有一个标识该信息的名称(NAME)和设置值(VALUE)
2.一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie
3.浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
4.如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。
二、Cookie与Session使用
1、俩个都是都由后端服务器生成的,cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie相当于明文,而session类似于密文,是由后端服务器经过编码后的一段无序字符串;session是key-value格式的数据,则它的键session_id保存在cookie中的,值session_data保存在服务器,通过key来取到value。
3.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗;考虑到安全应当使用session。
4、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能;考虑到减轻服务器性能方面,应当使用COOKIE。
5、建议:将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE中。