首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

对大网站应用cookie的一些见解

2012-11-03 
对大网站使用cookie的一些见解COOKIE在一般的网站都经常用到。下面是最简单的读取和设置COOKIE的代码。假设

对大网站使用cookie的一些见解
COOKIE在一般的网站都经常用到。
下面是最简单的读取和设置COOKIE的代码。



假设我们是在一个较大的IT公司里,应用非常多,我们也有不同的域名。虽然我们可以直接往xunlei.com下面加cookie,使所有项目可以共用COOKIE,但是这样会导致cookie数量越来越多,不好管理。而且IE有COOKIE数量限制(某些低版本的IE是20个),可能导致COOKIE丢失,因此,我们需要分域名存放。假设我们现在的WEB项目的域名是vip.xunlei.com,于是代码会变成这样:


不过这样还是不够的。假设vip.xunlei.com是一个大部门,这个部门旗下有多个产品,各个产品都有一个三级域名,例如productA.vip.xunlei.com,productB.vip.xunlei.com,productC.vip.xunlei.com
每个产品由不同的开发人员负责。假设某些业务逻辑要求往vip.xunlei.com这个域下写cookie,那么一旦cookie数量超过了20个,仍会产生上面的cookie丢失的问题。要解决这个问题,就必须减少cookie的数量。(一般不需要理会cookie总大小的问题,一般浏览器至少支持4K=4096字节的信息)。有一个较好的解决方法就是将cookie压缩到一个项里面去,因为浏览器不限制单个cookie的大小,只要不超过总容量即可,用key1=val1&key2=val2&key3=val3.....这样的形式合并成一个cookie字段。
下面是实现的代码。

代码解释:getRealCookie和setRealCookie就是上面的基本cookie读写函数。
getCookie和setCookie是对vipcookie这个cookie进行读写的函数。如果原生cookie中已有相应的值,则优先使用原生cookie中的值。这样就能做到向下兼容的效果。

在这里,我们使用的公共cookie项的名称是vipcookie,可根据自己的需要修改。
通过这样修改后,我们各个项目间的cookie终于可以和平相处,不会产生丢失的现象了。
以上仅仅是我一点小小的经验而已,欢迎大家拍砖。

热点排行