代码之家  ›  专栏  ›  技术社区  ›  Christos Hayward

为什么IE/Fiddler会从Chrome和FF/Live HTTP Header中看到不同的cookie设置/删除?

  •  0
  • Christos Hayward  · 技术社区  · 16 年前

    在Firefox中,Cookie似乎按照PHP指定的方式处理:它们是在用户登录并勾选“记住我”时创建的,只有在用户访问注销页面时才会删除,并且它们的有效期为两周。实时HTTP标头报告没有什么不同:当用户在页面之间点击时,Cookie永远不会被报告为被更改或删除。

    Cookies / Login
        Set-Cookie: *******=deleted; expires=Sun, 29-Jun-2008 21:07:46 GMT; path=; domain=.********.com
        Set-Cookie: *******=deleted; expires=Sun, 29-Jun-2008 21:07:46 GMT; path=; domain=.********.com
    

    IE和“删除”有什么特别之处吗?这听起来可能很奇怪,但IE是否希望在每次页面浏览时重新启用Cookie或类似功能?

    3 回复  |  直到 16 年前
        1
  •  3
  •   Christos Hayward    16 年前

    我最终发现如下:Firefox和IE的行为不同,因为当丢失的文档在已设置的14天Expires:标头内时,它们对缓存的处理方式不同。

    因此,它是缓存差异、间接包含和404页面行为。

    我仍然不知道“删除”是什么意思。(如果将cookie字符串设置为空值,PHP是否会提供单词“deleted”?)

        2
  •  2
  •   EricLaw    16 年前

    Fiddler并没有“发明”任何东西——如果它说它得到了一个HTTP标头,将cookie设置为“delete”值,这意味着服务器确实发送了该cookie。

    您可能想看看是否有任何错误的请求在网络上发出,导致服务器删除Cookie。例如,在另一个帖子中,有人指出,源代码为“”(空字符串)的IMG标签会导致IE发送对网站根的请求,如果访问了他们的主页,他们的主页会删除登录Cookie。

        3
  •  1
  •   jitter    16 年前

    所讨论页面的URL中是否有下划线?我记得IE遇到了来自不符合域名规范的域名的Cookie问题( RFC 1035

    顺便说一句,您在两个Set Cookie指令中提供的日期是来自旧日志的,还是服务器在过去确实设置了一个具有过期日期的Cookie(这是通常的说法……“嘿,浏览器删除了这个Cookie,因为它几天前就已经过期了”)