提起这个问题,很沉重。在cookie上我遇到很多很多奇怪的问题了(其实只是看起来奇怪而已)
一一列一下吧
1、页面是200状态,就是打不开。一直显示正在打开。但其他页面正常(首页并无其他特别的长耗时的代码)
2、页面显示XXX错误(不记得代码是多少了。。以前在做测试的时候遇到过)
3、cookie明明注册了。但却总是无效。
一一列解吧。
1、cookie数过多了,事实上,我没有设很多的cookie,只是,我在访问的时候,很多其他链接也帮我带上了cookie,导致在我这个域名根下,cookie数量过多。
在Cookie常识 一文中我转载过DBA notes里的几句话:Cookie 是个很有趣的话题。根据 RFC 2109 的描述,每个客户端最多保持 300 个 Cookie,针对每个域名最多 20 个 Cookie (实际上多数浏览器现在都比这个多,比如 Firefox 是 50 个) ,每个 Cookie 最多 4K,注意这里的 4K 根据不同的浏览器可能不是严格的 4096 。别扯远了,对于 Cookie 最重要的就是,尽量控制 Cookie 的大小,不要塞入一些无用的信息。
解决方法:清空cookie或者删除非本站cookie
2、cookie长度超出限制了。当时是在apache的服务器下,我用的是firefox,出错情况是提示cookie超长(错误代码记不清,最后是清空cookie解决 )
这里也有一位朋友有类似情况:Cookie 太大导致页面无应答的问题,这是他的总结:
- 好像在IIS6下特定环境下就会出现这个问题,因为当时整个项目有10多台Web服务器做了F5,但只有2台出现这个问题。针对这个问题,我在 IIS7下也进行了一下测试,发现当Cookie的大小达到30000多字节时,就会出现有应答为200的包,但应答的内容为空,在IE上显示为“ Internet Explorer cannot display the webpage ”,所以具体能使用cookie有多大,IIS6和IIS7下标准不一。
- 建议不要将用户配置等过大的信息写入cookie,搞不清楚什么时候IIS就出错了
3、检查一下服务器时间与本地时间是否一致。对于PHP5,有的人总是忽略了时差。检查一下吧。
最后:
1、对多窗口浏览器,其实很郁闷的,你设置的cookie如果是没有过期时间,即关闭窗口即自动删除时,如果不关闭整个浏览器,而关闭当前tab,那么,是无法删除的
2、对于swfupload,IE和FF下面会有不同的情况,传说中flash读的cookie是IE生成的,因此很多时间如果swfupload涉及到了用户登录情况时,总会不正常(后台在上传),记得把param中加个session_id的参数,POST过去。
BTW:这个,我真的很郁闷。有时候我的网站首页会无法打开,为什么呢?因为sablog(或者是我做的hacker)中生成了两个PHPSESSION的cookie,一个所属neatstudio.com,而另一个是.neatstudio.com,结果就导致了页面无法打开(看来,以后还是需要打开neatstudio.com后自动跳转到www.neatstudio.com才比较好,这样就不会出现类似的问题了。懒得改代码了。等 Session消失后就OK了。是不是太不注意用户体验了?)