小甜饼吃多了会出现404错误

        最近在做一个在线数据管理的项目,基本流程是客户端A将数据上传到服务器,客户端B从服务器拿数据,服务器作为中转站来使用。由于数据量还是比较大的,而且本地的客户端拿到数据后也需要做一系列的操作,因此缓存是必不可少的。然后,我就是这么想的:既然都是在本地操作,那么就用COOKIE来当缓存好了,并且我还自认为这是一个比较标新立异的想法。

        但是,数据量很大,COOKIE的大小、数量都是有限的,于是我去网上看了一下COOKIE的具体限制:

 

        InternetExplorer现在cookie限制为每个域名50

        Firefox每个域名cookie限制为50个。

        Opera每个域名cookie限制为30个。

        Safari/WebKit貌似没有cookie限制。但是如果cookie很多,会导致错误发生。

 

        FirefoxSafari允许cookie多达4097个字节,包括名(name)、值(value)和等号。

        Opera允许cookie多达4096个字节,包括:名(name)、值(value)和等号。

        InternetExplorer允许cookie多达4095个字节,包括:名(name)、值(value)和等号。

 

        恩,看来单个COOKIE的限制是4KB,对于我的项目来说肯定不够,因为我那一个条目就有16KB,总共有N多个条目。后来我权衡了一下,将数据条目做了适当的分割,然后就决定 32个COOKIE,每个COOKIE最大3KB 来储存数据缓存,这样可能不够直观,看看下面的COOKIE文件就可以:

       

            大家看一下,我的那个COOKIE是不是特别显眼,特别奇葩,它的身材绝对让它所有的小伙伴都自愧不如了,我也不管那么多,决定就用这个COOKIE做缓存了,因为它还没有超过浏览器域名下COOKIE的限制嘛

            之后测试运行的结果似乎一切正常,看来虽然这个COOKIE的体积是比较另类,但它确实发挥了作用。但接着测下去问题就暴露出来了:服务器直接给出了404错误。

            具体是这样的:我的这个COOKIE文件是通过服务器目录里的文件 server\buffer.html 文件创建的,当测试到一半时候,这个文件就变成了404页面,而且更奇怪的是,整个server目录里的所有页面通过浏览器访问时都变成了404页面,真是奇了怪,这个目录里的所有文件都毫发无损地好好地待在那儿呢,怎么会出现404?后来我又尝试将浏览器缓存(不包括COOKIE)清空,将服务器重启等办法,但是那个目录里的文件依然全部是404。最后,我抱着不甘心的心态将那个体积臃肿的COOKIE删掉后,问题就解决了,目录里的文件恢复正常。

            思考整个前因后果,服务器的逻辑应该没什么问题,很显然,客户端56KB的COOKIE才是罪魁祸首,这样一来,我使用COOKIE做缓存的计划便宣告破产。

            我觉得我当初用COOKIE做缓存的初衷是好的:这样可以将服务端的数据操作搬到本地来进行,如此就不受网速等外在因素影响,可以提高用户体验。但是目前浏览器操作本地文件的比较安全稳定的方法就只有COOKIE了,如果用JS操作本地文件之类肯定会出现权限问题,没有通用性,现在COOKIE计划宣告失败,只好将缓存的处理搬到服务器上了,唉~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值