IE对同一个域名下的cookie个数有限制,总的存储空间也有限制,个数大约50个,存储空间大约8K,超出部分会被删除(LRU)。
经测试最新版本的firefox、chrome几乎没有限制,IE不仅仅是IE8,即便是IE11也有限制。
同一个域名指的是协议、域名、端口均相同,有一个不同则不认为是一个域名。
所以如果你一个web服务配置多个应用,他们的协议相同、域名(IP)相同,端口相同,即便应用名不同依然会被认为是一个域名,但有时候我们为了部署方便,确会这么干。
如果网页使用到的cookie比较多,多个应用之间再跳转个几次,很可能导致cookie超出限制、网页出现奇怪的问题。如果你的网页在chrome、firefox上没有问题,但是在IE上有问题,你可以往这方面考虑下,或者有JS错误,可以根据错误定位问题。
IE下cookie超限往往的表现是刚开始网页没有问题,用了一段时间,特别是切换几个网页后开始有问题。因为切换网页可能增加了cookie个数,从而使旧的cookie丢失导致有问题。如果丢掉的是比较重要的cookie则比较麻烦,比如登录信息、用户有关的信息,可能会导致登录“被踢出”。火狐和谷歌自带的调试工具可以很方便的查看本机cookie。
注意要看的是域名下的cookie,不是一次request的cookie。可以看到不仅仅是代码,一些中间件也会添加cookie,这会导致cookie的可用个数急剧下降。期待IE早日淘汰吧。
cookie的使用建议进行管控,不能随机使用。每次增加cookie都要“备案”、记录、合理划分。