【问题标题】:Difference between 0 and negative value for setMaxAge for CookieCookie 的 setMaxAge 的 0 和负值之间的差异
【发布时间】:2018-06-29 19:23:17
【问题描述】:

来自 setMaxAge(int) 的 cookie 文档: http://docs.oracle.com/javaee/1.3/api/javax/servlet/http/Cookie.html#setMaxAge(int) int = 0int = -ve 之间有什么区别吗?它说0 删除cookie。 -ve 值表示不存储 cookie。这是否意味着 0 仅从当前浏览器会话中删除?

【问题讨论】:

    标签: cookies


    【解决方案1】:

    我建议您从浏览器的角度阅读有关 cookie 的信息。这很有趣。请注意,“max-age”是“expires”的较新版本,某些浏览器可能不支持它。 (比如IE6、IE7、IE8不支持max-age。)

    0 表示立即删除 cookie。

    否定意味着保留cookie一段时间。我怀疑范围在某种程度上是特定于浏览器的,但它不会在关闭和重新打开浏览器时保留 cookie。

    【讨论】:

    • From datatracker.ietf.org/doc/html/rfc6265 如果 delta-seconds 小于或等于零 (0),则令 expiry-time 为最早可表示的日期和时间。否则,让到期时间为当前日期和时间加上 delta-seconds 秒。
    【解决方案2】:

    将 setMaxAge 设置为 0 将删除 cookie。将其设置为 -1 将保留它直到浏览器关闭。

    【讨论】:

      【解决方案3】:

      setMaxAge(int) 如 Oracle 设置 max age 0 所述将立即删除 cookie。而-1会在浏览器关闭时删除cookie。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-22
        • 2021-07-11
        • 2014-04-14
        • 1970-01-01
        • 2021-07-04
        • 1970-01-01
        • 2021-01-23
        • 1970-01-01
        相关资源
        最近更新 更多