COOKIE和SESSION的区别

54人浏览 / 0人评论

COOKIE和SESSION的区别:

1.session在服务器端,cookie在客户端(浏览器)

2.session默认被存在在服务器的一个文件里(不是内存)

3.session的运行依赖sessionid,而sessionid是存在cookie中的,也就是说,如果浏览器禁用了cookie,同时session也会失效(但是可以通过其它方式实现,比如在url中传递session_id)

4.session可以放在文件、数据库、或内存中都可以

5.用户验证这种场合一般会用session

6.cookie可以保存用户喜好或者保存用户名密码
 

Q1:cookie有哪些不足呢?

A1:cookie是客户端技术,对客户端是可见的,数据安全性较低。

 

Q2:cookie和session存取方式不同

 

A2:cookie中只能保管ASCII字符串,假如需求存取Unicode字符或者二进制数据,需求先进行编码。Cookie中也不能直接存取Java对象。若要存储略微复杂的信息,运用Cookie是比较艰难的。

Session中能够存取任何类型的数据,包括而不限于String、Integer、List、Map等。Session中也能够直接保管Java Bean乃至任何Java类,对象等,运用起来十分便当。能够把Session看做是一个Java容器类。

 

Q3:网站如何选择?

A3:Session是保管在服务器端的,每个用户都会产生一个Session。假如并发访问的用户十分多,会产生十分多的Session,耗费大量的内存。发访问量极高的网站,是不太可能运用Session来追踪客户会话的。

Cookie保管在客户端,不占用服务器资源。假如并发阅读的用户十分多,Cookie是很好的选择。

 

什么是cookie?Session和cookie有什么区别?

什么是cookie?

Cookie是由W3C组织提出,最早由netscape社区发展的一种机制

  • 网页之间的交互是通过HTTP协议传输数据的,而Http协议是无状态的协议。无状态的协议是什么意思呢?一旦数据提交完后,浏览器和服务器的连接就会关闭,再次交互的时候需要重新建立新的连接

  • 服务器无法确认用户的信息,于是乎,W3C就提出了:给每一个用户都发一个通行证,无论谁访问的时候都需要携带通行证,这样服务器就可以从通行证上确认用户的信息。通行证就是Cookie

Session和cookie有什么区别?

  • 从存储方式上比较

    • Cookie只能存储字符串,如果要存储非ASCII字符串还要对其编码。

    • Session可以存储任何类型的数据,可以把Session看成是一个容器

  • 从隐私安全上比较

    • Cookie存储在浏览器中,对客户端是可见的。信息容易泄露出去。如果使用Cookie,最好将Cookie加密

    • Session存储在服务器上,对客户端是透明的。不存在敏感信息泄露问题。

  • 从有效期上比较

    • Cookie保存在硬盘中,只需要设置maxAge属性为比较大的正整数,即使关闭浏览器,Cookie还是存在的

    • Session的保存在服务器中,设置maxInactiveInterval属性值来确定Session的有效期。并且Session依赖于名为JSESSIONID的Cookie,该Cookie默认的maxAge属性为-1。如果关闭了浏览器,该Session虽然没有从服务器中消亡,但也就失效了。

  • 从对服务器的负担比较

    • Session是保存在服务器的,每个用户都会产生一个Session,如果是并发访问的用户非常多,是不能使用Session的,Session会消耗大量的内存。

    • Cookie是保存在客户端的。不占用服务器的资源。像baidu、Sina这样的大型网站,一般都是使用Cookie来进行会话跟踪。

  • 从浏览器的支持上比较

    • 如果浏览器禁用了Cookie,那么Cookie是无用的了!

    • 如果浏览器禁用了Cookie,Session可以通过URL地址重写来进行会话跟踪。

  • 从跨域名上比较

    • Cookie可以设置domain属性来实现跨域名

    • Session只在当前的域名内有效,不可夸域名

 

全部评论