繁体   English   中英

Java Cookie setMaxAge(int):如何跟踪确切的到期日期

[英]Java Cookie setMaxAge(int): How is the exact expiration date tracked

假设在我的 Java 应用程序中我做

    Cookie myCookie = new Cookie("myCookie", "someValue");
    myCookie.setMaxAge(3); // 3-seconds 

在响应中发送 cookie 时,它​​必须有一个过期日期。 我的理解是它将在CreationDate + 3 sec (maxAge)到期。 maxAge是增量。

如果我在1/1/2020 16:08:00创建一个 cookie,它的过期日期是1/1/2020 16:08:03吗?

那么cookie的原始Creation Timestamp是谁设置的,​​是构造函数吗? 如何跟踪整体日期?

cookie 创建时间不存储在 cookie 中。 客户端在给定的时间内保留 cookie,从它收到 cookie 开始。

除了@JB Nizet 所说的之外,客户端还可以更新它从服务器的Set-Cookie响应头接收到的任何与 cookie 相关的信息。

在 Chrome 的开发工具的“应用程序”选项卡中自行测试,左侧面板中有一个“Cookies”节点。 对于每个域,它允许您查看和/或修改您存储在浏览器中的任何 cookie。 如果您选择将“过期/最大年龄”更新为过去的日期,浏览器将自动删除该 cookie。 您还可以将其更新到将来的某个时间。

因此,最终取决于服务器是否知道 cookie 是否确实“有效”。 您永远不应该依赖来自客户端的 max-age/expires 数据来确定真正的有效性。 客户端使用它来简单地知道什么时候从它的本地存储中删除它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM