Web前端入门第 82 问:JavaScript cookie 有大小限制吗?溢出会怎样?
面试时候经常会被问及 Cookie 大小限制,但一直没尝试写一些 demo 测试下溢出极限值会怎样~~本文就来看看各种极限情况!
英文
测试代码:
(() => {
const maxSize = 4 * 1024; // 4KB
const name = 'name'
// 最大出入的 value 长度
const maxValueStr = 'a'.repeat(maxSize - name.length);
// firefox 不能使用 Secure
document.cookie = `${name}=${encodeURIComponent(maxValueStr)};expires=${new Date(2026, 0, 1).toUTCString()};path=/`;
})()Chrome/Edge/Firefox 浏览器
英文:名字 + 内容 字符串长度限制 4096 字符。
各家浏览器的存储面板都能看到 Cookie 大小,此大小包含存入 Cookie 的名字和内容加在一起的长度。
不同之处
Chrome/Edge
超过 4KB 大小无法存储,浏览器无报错,也无提示,纯粹毫无感知。
Firefox
超过 4KB 大小会有提示:
Cookie “name”太大而无效。最大大小为 4096 字节。比如这段代码存入 cookie 的值超过一个字符:
(() => {const maxSize = 4 * 1024 - 5; // 4KBconst maxStr = 'a'.repeat(maxSize) + 'b1';console.log('
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]