当前位置:首页 > 焦点 > js存储cookie

js存储cookie

2026-10-17 05:44:38 [时尚] 来源:力不从心网

浏览器里存点东西,存储最土的存储办法就是cookie。它就是存储个文本小纸条,服务器塞给你,存储你揣兜里,存储下次再去人家门口,存储掏出来给人看一眼。存储别嫌它老,存储HTTP协议本来就是存储个没记性的家伙,每次请求都当你是存储陌生人,cookie算是存储硬给它装了个临时记忆。

写cookie的存储代码简单得有点无聊。直接操作document.cookie就行,存储比如:

document.cookie = "username=张三; path=/; max-age=3600";

这一行干了三件事:存了个键值对,存储限定路径是存储整个站点,设定一小时有效期。注意,这里没有分号结尾的语法糖,你每次赋值,它不会覆盖别的cookie,只是追加或者更新同名的那个。你要是连着写两行不同名字的cookie,最后document.cookie读出来是个分号分隔的长字符串,有点像超市小票。

麻烦就在读取上。document.cookie不是对象,不是数组,就是个字符串。想拿某个值,你得自己split,自己遍历,自己解码。我见过不少新手在这儿栽跟头——直接拿indexOf去查,结果把"username"和"username2"搞混。别偷懒,写个解析函数,几行的事,但能省掉你半夜调试的血压。

删cookie更反直觉。没有专门的remove方法,你得把过期时间设成过去的时间点。比如:

document.cookie = "username=; path=/; max-age=0";

max-age为0或者负数,浏览器立马撕掉这张纸条。你要是忘了带path=/,那就有意思了——你在/page1设置的cookie,在/page2根本看不见,你以为删掉了,其实它躲在别的路径底下好好活着。

真正要命的是HttpOnly这个属性。如果你用JavaScript操作cookie,那这个属性基本跟你无关——它专门防你这种脚本去读cookie。服务端设置的HttpOnly cookie,document.cookie里压根不显示。这是XSS攻击的防线,但反过来也说明,纯前端存敏感信息,cookie不是个好容器。

还有SameSite。以前大家不关心,后来Chrome默认把它设成Lax,跨站请求就不带cookie了。你要是做第三方嵌入的iframe,或者前端调跨域接口,不设置SameSite=None; Secure,cookie就静默失踪。排查半天,最后发现是浏览器策略,那种感觉,像是被门卫拦了,证件齐全但就是不让进。

个人看法:cookie适合存会话标识、用户偏好这类低敏感度的东西。存token?勉强可以,但得配短过期时间。存密码?那是给自己挖坑。localStorage容量更大,但XSS一打就全裸奔。cookie至少有个HttpOnly的选项能挡一下脚本读取,算是矮子里拔将军。

最后提醒一句,cookie的4KB大小限制是硬性的。超了,浏览器静默丢弃,不报错。你存个大字符串进去,下次读出来发现被截断,那感觉就像写日记写到一半,纸被撕了,你还不知道哪一页出了问题。

写cookie不难,难的是搞清楚它在你整个站点架构里扮演什么角色。别拿它当数据库使,它就是一张便利贴——记性不好,容易丢,但随手贴随手撕,确实方便。

(责任编辑:综合)

推荐文章
  • vivo维易贷可以协商还款吗

    vivo维易贷可以协商还款吗 vivo维易贷的协商还款通道是真实存在的,但能不能谈成,取决于你的逾期时间和沟通方式。我见过不少用户卡在“客服说没有这个政策”这一步就放弃了,实际上,那只是第一道门槛。 先讲个真实案例。上个月有个做餐 ...[详细]
  • 渗透模式

    渗透模式 去年冬天我在一家连锁便利店买水,结账时店员扫了一眼我手里的会员码,随口说了句:“您上周买的那个牌子的气泡水,今天第二件半价。”我愣了一下——我确实上周买过,但我根本没注意这家店有会员消费记录追踪。那个 ...[详细]
  • 在线学习系统

    在线学习系统 上线第一周,数据库就崩了两次。那是2019年秋天,我参与搭建的一个企业内部在线学习系统,注册用户刚过三千,选课峰值把MySQL连接池打满。运维同事在群里甩出一张CPU飙到98%的截图,配文:“谁写的选 ...[详细]
  • 廊坊招聘网站400

    廊坊招聘网站400 400这个号码,在廊坊招聘行业里是个分水岭。打过去有人接、能说清楚是哪家公司的,不到三成。剩下那些,要么是空号,要么转接到一个永远在“坐席繁忙”的语音系统里。我上个月帮朋友查一家廊坊开发区的企业,网上 ...[详细]
  • 漏洞库网站

    漏洞库网站 我翻了翻自己电脑里的漏洞库备份,最早的一条记录是2016年的,一个关于老版本Flash的远程代码执行漏洞。当时为了复现它,我搭了三台虚拟机,折腾了一整夜。现在想想挺傻的,那个漏洞早被Adobe修得干干 ...[详细]
  • 要学密码学

    要学密码学 你每天用的 HTTPS,背后就是密码学在撑着。没有它,你输入的密码、刷的卡号,在网络上跟裸奔没区别。 很多人觉得密码学就是搞加密解密,写一堆看不懂的数学公式。这个印象不算错,但太窄了。密码学真正解决的 ...[详细]
  • kangle web server

    kangle web server kangle web server 这个玩意儿,第一次见是在一个做IDC的朋友的机房里。他指着监控面板上一排排绿色的小格子说:“这玩意儿扛了八千多个站,跑了三年,没重启过。”我当时以为他在吹牛,直到他 ...[详细]
  • 反应力训练网站

    反应力训练网站 打开Human Benchmark,点下那个蓝色按钮,屏幕变绿的一瞬间立刻再点一次。大多数人第一次的成绩在250毫秒上下。职业电竞选手能压到150毫秒以内,F1车手的反应测试数据更夸张——有些人在13 ...[详细]
  • seo关键词推广技术

    seo关键词推广技术 百度站长后台的“索引量”曲线突然掉了一半,我盯着屏幕愣了三秒。域名没换,服务器没挂,robots.txt也没动过。排查到最后,发现是三个月前改版时,把产品详情页的URL从`/product/123.h ...[详细]
  • 拼多多推广技巧教程

    拼多多推广技巧教程 拼多多推广最忌讳一上来就猛砸钱。我见过太多商家开直通车第一天烧掉两千块,订单只有个位数。问题出在哪?不是产品不行,是你把推广当成了买流量,而不是做转化。拼多多的流量逻辑跟淘宝完全两码事,它的推荐机制更 ...[详细]
热点阅读