找回密码
 立即注册
首页 业界区 业界 Web前端入门第 82 问:JavaScript cookie 有大小限制吗 ...

Web前端入门第 82 问:JavaScript cookie 有大小限制吗?溢出会怎样?

翳舀 2025-9-26 11:44:40
面试时候经常会被问及 Cookie 大小限制,但一直没尝试写一些 demo 测试下溢出极限值会怎样~~
本文就来看看各种极限情况!
英文

测试代码:
  1. (() => {
  2.   const maxSize = 4 * 1024; // 4KB
  3.   const name = 'name'
  4.   // 最大出入的 value 长度
  5.   const maxValueStr = 'a'.repeat(maxSize - name.length);
  6.   // firefox 不能使用 Secure
  7.   document.cookie = `${name}=${encodeURIComponent(maxValueStr)};expires=${new Date(2026, 0, 1).toUTCString()};path=/`;
  8. })()
复制代码
Chrome/Edge/Firefox 浏览器

英文:名字 + 内容 字符串长度限制 4096 字符。
1.png

各家浏览器的存储面板都能看到 Cookie 大小,此大小包含存入 Cookie 的名字和内容加在一起的长度
不同之处

Chrome/Edge

超过 4KB 大小无法存储,浏览器无报错,也无提示,纯粹毫无感知。
Firefox

超过 4KB 大小会有提示:
  1. Cookie “name”太大而无效。最大大小为 4096 字节。
复制代码
比如这段代码存入 cookie 的值超过一个字符:
[code](() => {  const maxSize = 4 * 1024 - 5; // 4KB  const maxStr = 'a'.repeat(maxSize) + 'b1';  console.log('
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册