首页 > web前端 > js教程 > 正文

JavaScript cookie如何操作_它有什么限制?

狼影
发布: 2025-12-17 22:25:02
原创
963人浏览过
JavaScript操作cookie需通过document.cookie,读写受限;写入用key=value;expires=...格式,读取需解析字符串,删除需设过期时间;单个最大4KB、同域约20–30个,不安全且易被清除,适合存登录态等需自动随请求发送的轻量数据。

javascript cookie如何操作_它有什么限制?

JavaScript 操作 cookie 主要靠 document.cookie 这个接口,它看起来像字符串,实际是读写受限的特殊属性。操作本身不难,但细节多、易出错;限制也明确,不能当“小数据库”乱用。

怎么读、写、删 cookie

写入:直接赋值字符串,格式为 key=value; expires=...; path=/; domain=...; Secure; HttpOnly。例如:

  • document.cookie = "theme=dark; expires=Fri, 12 Dec 2025 14:37:00 GMT; path=/";
  • 不设 expires 就是会话 cookie,关浏览器就消失
  • 多个属性用分号+空格分隔,pathdomain 决定作用范围

读取:返回的是所有可访问 cookie 拼成的一个字符串,如 "user=john; lang=zh; cart=3",需手动解析:

  • document.cookie.split('; ') 拆成数组
  • 再对每个项 split('=') 取键值,并 decodeURIComponent() 解码
  • 建议封装成 getCookie('user') 函数,避免每次重复写

删除:本质是覆盖原 cookie,把 expires 设为过去时间即可:

立即学习Java免费学习笔记(深入)”;

  • document.cookie = "user=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
  • 注意要保持 pathdomain 与写入时一致,否则删不掉

cookie 的硬性限制

浏览器对 cookie 有明确的容量和数量上限,不是“想存多少存多少”:

腾讯AI 开放平台
腾讯AI 开放平台

腾讯AI开放平台

腾讯AI 开放平台 381
查看详情 腾讯AI 开放平台
  • 单个 cookie 最大 4KB(含名、值、所有属性),超了会被截断或忽略
  • 同域名下最多约 20–30 个 cookie,超出后旧的可能被自动丢弃
  • 总大小也有隐式限制(比如 Chrome 对整个域名约 8MB,但 cookie 部分仍受 4KB/条约束)

安全与可靠性注意事项

cookie 不是安全或可靠的存储方式,尤其不适合放敏感数据

  • 明文传输风险高:没加 Secure 属性,HTTP 下会被窃听;没加 HttpOnly,JS 可读取,易遭 XSS 窃取
  • 用户可随时清除:手动删 cookie、启用“无痕模式”、浏览器设置禁用等都会导致丢失
  • 跨域隔离严格:a.com 写的 cookie,b.com 根本读不到;子域名共享需显式设 domain=.example.com
  • SameSite 缺失易引发 CSRF:现代应用应设 SameSite=LaxStrict 防范跨站请求伪造

什么场景适合用 cookie?

它的不可替代性在于“自动随 HTTP 请求发送”——这是 localStorage、sessionStorage 完全不具备的:

  • 用户登录态(配合后端 session 或 JWT)
  • 需要服务端识别的偏好设置(如语言、主题)
  • 购物车 ID、访客追踪 ID 等需在首屏就传给后端的信息

其他情况,比如纯前端缓存、大量结构化数据,优先选 localStorage 或 IndexedDB。

基本上就这些。操作不复杂但容易忽略编码、路径、过期时间这些细节,限制虽死板但设计初衷很清晰:轻量、短寿、带上下文——用对地方才有效。

以上就是JavaScript cookie如何操作_它有什么限制?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号