首先要区分它们,我们要先明白它们各自的定义是什么。
Cookie
Cookie是在Http协议下,服务器或脚本可以维护客户工作站上消息的一种方式。Cookie是由Web服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的消息。无论何时用户链接到服务器,Web站点都可以访问Cookie消息。
功能
在同一个页面中设置Cookie,实际上是按从后往前的顺序进行的。如果要先删除有关Cookie,在写入有关Cookie,就必须先写写入语句,在写删除语句,否则会出现错误。
Cookie是面向路径的。缺省路径属性时,Web服务器就会知道传递当前路径给浏览器,指定路径强制服务器使用设置的路径。在一个目录页里设置的Cookie在另一个目录的页面里是看不到的。
Cookie必须在HTML文件的内容输出之前设置;不同的浏览器对Cookie的处理不一致;客户端用户如果设置禁止Cookie,则Cookie不能建立。并且在客户端一个浏览器能促进的Cookie数量最多为300个。而且每个不超过4KB,每个Web站点能设置的Cookie总数不能错过20个
Session
Session是一种保存上下文信息的机制,它是针对每一个用户的,Session的内容在服务器端,通过SessionId来区分不同的客户,Session是以Cookie或url重写为基础的,默认用Cookie来实现。
当一个Session第一次被启用时,一个唯一的标识被存储于本地的Cookie中。
区别
1.Session保存在服务器,浏览器(客户端)不知道其中的消息;Cookie保存在浏览器(客户端),服务端可以知道其中的消息。所有在打开另一个浏览器后,Cookie的值就不同了,而Session保存的对象,只要不关闭服务器,还是一样的。
2.Session保存的是对象,Cookie保存的是字符串
3.Session不能区分路径,同一个用户在访问一个网站期间,所有的Session在任何一个地方都可以访问到,而Cookie如果设置了路径参数,那么同一个网站中不同的路径下的Cookie相互之间是访问不到的。
4.Session是需要借助Cookie才能正常工作的,所有说Session是基于Cookie的基础上实现的,如果浏览器(客户端)完全禁止Cookie,那么Session也会失效。