【问题标题】:can i send empty cookie to browser?我可以将空 cookie 发送到浏览器吗?
【发布时间】:2019-04-17 22:52:12
【问题描述】:

从我的 perl 程序中,我正在发送对 AJAX 调用的响应,如下所示:

...a lot of code...
$| = 1;
print $q->header(-type=>'text/html',-cookie=>$cookie);
my $tt = Template->new({INCLUDE_PATH => $htmlTempletPath});
$tt->process($returnVal,$ttVars)|| die $tt->error();
1;

当用户第一次登录时,我设置并发送这个 $cookie 作为会话 ID 等用于身份验证。每当我增加 cookie 的过期时间时,我都会通过 -cookie=> 指令将其发回。

我担心的是,如果 $cookie 变量为空,它如何影响浏览器/会话或已经设置的 cookie?还是浏览器默默忽略-cookie=>(空)

请建议。我环顾四周,但没有找到任何帮助。

【问题讨论】:

    标签: html perl cookies session-cookies


    【解决方案1】:

    这在 cookie 的规范文档 RFC6265 中进行了讨论

    如果用户代理收到具有相同 cookie 名称的新 cookie, 域值和路径值作为它已经存储的 cookie, 现有的 cookie 被驱逐并替换为新的 cookie。 请注意,服务器可以通过向用户代理发送一个 带有 Expires 属性的新 cookie,其值为过去。

    因此,只有当您发送的 cookie 具有过去的过期日期时,它才会被明确删除。显然,用户和/或用户代理仍然可以出于任何其他原因删除您的 cookie。

    另见

    与 Cookie 相关的 HTTP RFC,https://www.rfc-editor.org/rfc/rfc6265

    【讨论】:

    • 在这种情况下 $cookie 变量为空。它什么都没有,没有cookie名称。所以我猜它对浏览器或会话没有影响??
    • 对于到期/注销,我有一个单独的 cgi,它以 0 秒的时间发送回 cookie 并完成它的工作。
    • @rajeev:是的,发送一个空 cookie 没有效果。
    猜你喜欢
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    • 2019-08-19
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多