web cookie 的存储大小问题

本文通过实验验证了Cookie的最大存储容量,并特别关注了不同字符类型(如数字与汉字)对存储空间的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

俗话说,纸上得来终觉浅,绝知此事要躬行;

前辈问我cookie的存储量有多大,我按部就班的回答 4k左右;

前辈又问,那么cookie能存储多少个汉字?

4k 大概 4000字节,一个汉字 2 个字节,那差不多 2000个吧;

前辈又问:确定么

到此就困惑了;

 

下面通过 chrome 浏览器的 cookie 进行测试:

注意,项目在本地服务器环境下启动测试,否则无法完成设置,本测试置于 xampp 的 apache 环境中

首先测试 4000个数字,也就是单字节数据的 cookie 设置

var temp = "0123456789";  //0~9 十个数字 
var str = '';
for(var y = 0 ;y < 400; y++){ 
   str = str + temp; 
}
document.cookie = "ceshi=" + str;
console.log("测试数据", document.cookie);
// 从控制台 Application 选项下的 Storage 下的 Cookies 中,我们可以看到相关信息,找到 size = 4005

从上面的结果我们可以看到,4000个数字 +  "ceshi" 五个单字节字母,和 size=4005 是吻合的;

 

下面换成汉字试一下:

var temp = "测试啊";  // 三个汉字  
var str = '';
for(var y = 0 ;y < 400; y++){ 
   str = str + temp; 
}
document.cookie = "ceshi=" + str;
console.log("测试数据", document.cookie);
// 从控制台 Application 选项下的 Storage 下的 Cookies 中,我们可以看到相关信息,找到 size = 3605

我们上面使用了 3*400 = 1200 个汉字,但是最后的结果却是 3605;

去除 "ceshi" 五个单字节字母,那么一个汉字占据了三个字节,而不是两个字节;

这么计算的话 4000 / 3 大概也就是 1300 左右的汉字;

 

暂时到这,后续还有很多问题,稍后更新....

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值