当 cookie 没有设置 maxAge 时,它会存在多久?

Cookie 在没有设置 maxAge 时仅在会话期间有效,关闭浏览器后被删除。默认行为适用于所有主流浏览器。

浏览器机制 中等 cookie javascript browser

在 Web 开发中,当 Cookie 未显式设置 maxAge 属性时,其行为与持续时间是由 HTTP 标准定义的。多个权威资料表明:

  • 默认情况下,maxAge 的值设为 -1(即未设置时),因此 Cookie 被称为“会话级”或“会话级”。
  • 这意味着 Cookie 的生命周期仅限于单个浏览器会话,通常指:
    1. 保持在当前浏览器实例中(如打开窗口或标签页)。
    2. 一旦用户完全关闭所有相关窗口后浏览器进程终止,浏览器会移除该 Cookie。
  • 在浏览器运行时,Cookie 仅保存在内存中而不持久化到硬盘上,用户关闭浏览器时自动被删除。

其他实现要点:

  • 该默认行为适用于大多数浏览器环境(Chrome,Firefox 等)。
  • maxAge 在 Java HTTP Servlet API 中是一个常见设置属性类似地影响跨平台的 Cookie 存活机制:
    // 示例:未设置 maxAge,等同于默认值 -1
    Cookie sessionCookie = new Cookie("username", "guest");
    response.addCookie(sessionCookie); // 浏览器关闭时删除
    

综上所述,未设置 maxAge 的 Cookie 只在浏览器打开期间生效,并在关闭后立即失效。