当前位置: 首页 > news >正文

浏览器的Cookie 过期时间存储

Cookie 是服务器发送到浏览器的小型文本数据,用于跟踪用户状态(如登录信息、偏好设置),存储大小通常限制为 4KB,每个域名下最多允许约 20-50 个 Cookie(不同浏览器不同)。

属性

属性说明示例注意事项
名称和值Cookie 的键值对,用于存储数据username=John名称和值需进行 URL 编码(如空格转为%20
Domain指定 Cookie 生效的域名,默认仅当前域名(不含子域名).example.com(允许所有子域名)若显式设置域名,则包含子域名;不设置则仅当前域名
Path指定 Cookie 生效的路径,默认当前路径/admin(仅/admin路径下可访问)设为/表示全站生效
Expires绝对过期时间(GMT 日期)expires=Mon, 01 Jan 2024 00:00:00 GMT优先级低于Max-Age;未设置则为会话 Cookie(关闭浏览器失效)
Max-Age相对过期时间(秒数)max-age=3600(1 小时后过期)优先级高于Expires;设为0表示立即删除
Secure仅通过 HTTPS 传输 CookieSecure本地开发(HTTP)需关闭此属性,否则 Cookie 不生效
HttpOnly禁止 JavaScript 访问 Cookie,防止 XSS 攻击HttpOnly无法通过document.cookie读取,但浏览器仍会自动发送到服务器
SameSite控制跨站请求时是否发送 Cookie:
Strict:禁止跨站
Lax:允许安全跨站导航(如链接跳转)
None:允许所有跨站
SameSite=Lax

设置 Cookie

// 设置一个名为"user"的Cookie,有效期7天
document.cookie = "user=Alice; expires=" + new Date(Date.now() + 7*24*60*60*1000).toUTCString() + "; path=/";

读取 Cookie

// 获取所有Cookie并解析为对象
const cookies = document.cookie.split(';').reduce((res, c) => {
  const [key, val] = c.trim().split('=');
  res[key] = val;
  return res;
}, {});
console.log(cookies.user); // 输出: Alice

删除 Cookie

// 设置过期时间为过去的时间
document.cookie = "user=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

Cookie 过期时间

固定天数过期

// 默认 7 天后过期(浏览器关闭不影响计时)
const saveToCookie = (key, value, daysToExpire = 7) => {
  const date = new Date();
  date.setTime(date.getTime() + daysToExpire * 24 * 60 * 60 * 1000);
  document.cookie = `${key}=${value}; expires=${date.toUTCString()}; path=/`;
}

会话期 Cookie(关闭浏览器即失效)

// 删除 expires 属性即可
const saveSessionCookie = (key, value) => {
  document.cookie = `${key}=${value}; path=/`; // 不设置 expires
}

 立即过期(用于删除)

// 设置过期时间为过去时间
const deleteCookie = (key) => {
  document.cookie = `${key}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`;
}

总结

类型expires 属性浏览器行为
固定时间 Cookie设置具体过期时间(如 7 天后)即使关闭浏览器,Cookie 仍会保留至过期时间
会话期 Cookie不设置 expires 属性浏览器关闭后自动删除
立即过期设置为过去时间立即删除 Cookie

推荐改用 max-age(更直观的秒数控制)

// 使用 max-age 替代 expires(单位:秒)
const saveToCookie = (key, value, maxAge = 604800) => { // 默认 7 天
  document.cookie = `${key}=${value}; max-age=${maxAge}; path=/`;
}

// 会话期 Cookie(浏览器关闭失效)
const saveSessionCookie = (key, value) => {
  document.cookie = `${key}=${value}; path=/`;
}

// 立即失效
const deleteCookie = (key) => {
  document.cookie = `${key}=; max-age=0; path=/`;
}

相关文章:

  • sass中@import升级@use的使用区别与案例
  • 群联AI云防护——针对四层与七层协议的精细化安全防护方案
  • C# 添加图标
  • 函数式自定义组件调用
  • 冒险岛079 V8 整合版源码搭建教程+IDEA启动
  • 【产品资料】陀螺匠·企业助手v1.8 产品介绍
  • 练习题:39
  • Redis哈希槽机制的实现
  • Containerd 简介、安装与使用指南
  • Lineageos 22.1(Android 15) 编译隐藏API的 android.jar
  • DeepSeek 开放平台无法充值 改用其他平台API调用DeepSeek-chat模型方法
  • 代码随想录D50-51 图论 Python
  • AT_dp_u Grouping 题解
  • 猿大师办公助手:高效、安全、兼容的WebOffice在线办公解决方案
  • 【数据分享】1929-2024年全球站点的逐年降雪深度数据(Shp\Excel\免费获取)
  • 项目管理十大领域是哪些
  • IMX6ULL的公板的以太网控制器(MAC)与物理层芯片(PHY)连接的原理图分析(包含各引脚说明以及工作原理)
  • 最新Apache Hudi 1.0.1源码编译详细教程以及常见问题处理
  • 基于 Python 和 Django 的北极星招聘数据可视化系统(附源码,部署)
  • 什么是Scaling Laws(缩放定律);DeepSeek的Scaling Laws
  • 在日本网站做推广渠道/360竞价推广开户多少钱
  • 刚做的网站搜索不到/口碑优化seo
  • 浙江省建设质量协会网站/互联网推广公司靠谱吗
  • 做一个b2c网站多少钱/网络营销技能大赛优秀作品
  • 怎么做公司网站的二维码/新品牌推广策划方案
  • 上海网站建设百度推广公司/高端网站建设企业