在Web发展历史中,session与cookie都是伟大的存在,其初衷都是为了记住用户在网站上的浏览信息,如果没有其他替代品的出现,几乎所有web站点都离不开session与cookie。cookie、session的出现是由于Http协议是无状态的,导致服务器无法分辨是谁浏览了网页,为了维持用户在网站的状态,比如登陆、购物车等,先后出现了四种技术,分别是隐藏表单域、URL重写、cookie、session。由于cookie、session在日常中用的比较多,着重介绍下两者的区别和概念。
Cookie
(1)Cookie的概念
储存在用户本地终端上的数据,是针对每一个网站的信息,每一个网站只对应一个,其它网站不能访问,这个文件是保存在客户端的,每次你打开相应网站,浏览器会查找这个网站的cookies,如果有就会将这个文件发送出去。cookies文件的内容大致包含这些信息如用户名,密码,设置等。由服务器发送出来以存储在浏览器上,从而下次这位访客又回到该网络服务器时,可从该浏览器读回此信息。
(2)Cookie的分类
目前有些 Cookie 是临时的,有些则是持续的。临时的 Cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,该 Cookie 就会被系统清除 。
持续的 Cookie 则保存在用户的 Cookie 文件中,下一次用户返回时,仍然可以对它进行调用。在 Cookie 文件中保存 Cookie,有些用户担心 Cookie 中的用户信息被一些别有用心的人窃取,而造成一定的损害。
其实,网站以外的用户无法跨过网站来获得 Cookie 信息。如果因为这种担心而屏蔽 Cookie,肯定会因此拒绝访问许多站点页面。因为,当今有许多 Web 站点开发人员使用 Cookie 技术,例如 Session 对象的使用就离不开 Cookie 的支持 。
Session
(1)Session的概念
Session直接翻译成中文比较困难,一般都译成时域。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。以及如果需要的话,可能还有一定的操作空间。
具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到关闭浏览器所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。
是针对每一个用户的,session机制是一种服务器端的机制。只有客户机访问,程序就会为这个客户新增一个session。session里主要保存的是需要在整个用户会话过程中保持其状态的信息,例如登录信息或用户浏览 Web应用程序时需要的其它信息,存储只需要在页面重新加载过程中或按功能分组的一组页之间保持其状态的对象。
(2)Session的作用
Session 的作用就是它在 Web服务器上保持用户的状态信息供在任何时间从任何设备上的页面进行访问。因为浏览器不需要存储任何这种信息,所以可以使用任何浏览器,即使是像 Pad 或手机这样的浏览器设备。
(1)Cookie和Session的对比
(2)小结
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。cookie针对每一个网站,session针对每一个用户。
个人建议:将登陆信息等重要信息存放为SESSION,其他信息如果需要保留,可以放在COOKIE中。