Cookie与Session的简单讨论

来源:互联网 发布:约定的梦幻岛知乎 编辑:程序博客网 时间:2024/05/16 17:21


因为之前几篇文章都在写Cookie,当我们在讨论Cookie的同时自然会联想到与Cookie类似的另一个概念就是会话(Session),会话一般是记录客户端和服务器端从客户端浏览器连接上服务器端到关闭浏览器期间的持久信息,也称作为服务器端存储状态数据。会话一般保存在内存中,不保存到磁盘上。会话可以通过Cookie机制来实现,对于不支持Cookie的客户端,会话可以采用URL重写方式来实现。可以将会话理解为内存中的Cookie。

使用会话会对系统伸缩性造成负面影响,当服务器端要在很多台服务器上同步复制会话对象时,系统性能会受到较大伤害,尤其会话对象较大时。这种情况下可以采用Cookie,将需要记录的信息保存在客户端,每次请求时发送到服务器端,服务器端不保留状态信息,避免在服务器端多台机器上复制会话而造成的性能下降。

下面介绍Cookie和Session主要区别的比较结果:

(1)Cookie数据存放在客户的浏览器上,Session数据存放在服务器上;

(2)Cookie不是很安全,别人可以分析存放在本地的Cookie进而进行Cookie欺骗等破坏,相对而言,Session会更安全,因此在涉及安全的应用中应尽量选择Session;

(3)Session会在一定时间内保存在服务器上,当访问增多时,它会占用服务器的性能,若开发者考虑服务器性能时,应当使用Cookie;

(4)单个Cookie在客户端的大小限制是4KB,而Session没有大小限制。


0 0