Cookie
是客户端的存储空间,由浏览器来维持,是保存在客户端的小段文本,随客户端点每一个请求发送该url下的所有cookies到服务器端。
- 限制
cookie在性质上是绑定在特定域名下的。当设定了一个cookie后,再给创建它的域名发送请求时,都会包含这个cookie。
注意:cookie在同一浏览器一段时间内是有效的,除了隐身模式下cookie不予保存;不同浏览器之间cookie不保存。 - cookie的构成
名称、值、域、路径、失效时间、安全标志、
Session
通过唯一的值sessionID来区别每一个用户。SessionID随每个连接请求发送到服务器,服务器根据sessionID来识别客户端,再通过session 的key获取session值。SessionID传回服务器的实现方式可以通过cookies和url回写来实现。
服务器也可以通过URL重写的方式来传递SessionID的值,因此不是完全依赖Cookie。如果客户端Cookie禁用,则服务器可以自动通过重写URL的方式来保存Session的值,并且这个过程对程序员透明。
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
同时,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。
cookie 和session 的区别:
- cookie数据存放在客户的浏览器上,session数据放在服务器上。
cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20-50个cookie。(一些开发人员使用了一种称为子cookie的概念/subcookie)
所以个人建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中