1、什么是cookie和session?
我们都知道,http协议是一种无状态的协议,浏览器对服务器的每一次请求都是独立的。为了使得web能够产生一些动态信息,就需要保存”状态”,而cookie和session机制就是为了解决http协议无状态而产生。cookie是一种在客户端保存状态的方案,session是一种在服务器端保存状态的方案。
2、cookie和session的区别 (举例说明)
在我们学校旁边的一家卖蛋糕的,有消费3个蛋糕免费一个的活动。然而一次性消费三个的可能性很小,需要用某种方式来记录顾客的消费状态,这时就有两种方案:
cookie方案:发给顾客一张卡,上面记录着消费量,一般还有个时限。每次消费的时候顾客只要出示这张卡,则此次消费的状态就被记录下来了。这就是在客户端保持状态。
session方案:同样发给顾客一张卡,但是卡上只有一个卡号,用来标识用户身份,其他什么都没有。每次顾客去消费时,只要出示这张卡,则店员就在店里的记录本上找到卡号所对应的记录,并且添加一些消费信息。这就是在服务器端保存状态的方法,由于session方案需要session id(卡号)将客户端和服务器端连接起来,所以一般session机制需要借助cookie来在客户端保存session id。当然除了cookie还有一种url重写的方法也能够实现session机制。
3.总结
cookie数据存放在浏览器上,session数据存放在服务器上。一般把登陆信息用session保存。
session会在一定时间内保存在服务器上,当访问增多时,会占用服务器的性能。
单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。