V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xiaohantx
V2EX  ›  问与答

关于谷歌的 cookie 的一个问题

  •  
  •   xiaohantx · 2019-06-12 19:27:37 +08:00 · 1576 次点击
    这是一个创建于 1987 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想问下我设置了一个 cookie 没有设置时间,理论上应该在会话结束时(网页关闭)就自动删了,但是为什么我关了谷歌浏览器没有删...
    11 条回复    2019-06-13 07:34:32 +08:00
    DarlingXwl
        1
    DarlingXwl  
       2019-06-12 23:20:20 +08:00   ❤️ 1
    Chrome 官方曾说过 不想放弃用户的 cookie 数据,这种说法我有点印象。

    楼主可以试着验证这种说法,也可以去查找一下相关信息。

    这也许就是问题的原因。

    本人说法缺乏证据,仅供参考哈。

    其实比较痛苦的开发过程使用 chrome,因为 google 的缓存技术,页面时长不能得到及时的更新,所以需要常常手动清除数据,相对繁琐,又习以为然。
    xiaohantx
        2
    xiaohantx  
    OP
       2019-06-12 23:32:47 +08:00
    @DarlingXwl #1 好像有看见相关,但是没设置时间会话结束这不是通用规则么,谷歌也太一家独大了吧....
    DarlingXwl
        3
    DarlingXwl  
       2019-06-12 23:42:52 +08:00   ❤️ 1
    @xiaohantx 这个怎么说呢,我去查一下相关信息哈。

    显然 我的表诉的错误的,chrome 只是不会删除 google 相关的 cookie,原话在这里:news.ycombinator.com/item?id=1 八 064 五 37

    某些原因发布了。楼主自行修改中文

    所以楼主的具体原因 目前个人无法解答
    Jirajine
        4
    Jirajine  
       2019-06-12 23:46:03 +08:00 via Android
    用扩展 cookie auto delete
    xiaohantx
        5
    xiaohantx  
    OP
       2019-06-12 23:48:07 +08:00
    @DarlingXwl #3 但是搜了下有些相关问题,但是并没有解答,不知道有没有别人遇见了
    xiaohantx
        6
    xiaohantx  
    OP
       2019-06-12 23:49:16 +08:00
    @Jirajine #4 但需求上其实我是希望用户关闭页面 cookie 就自动删了,不能让用户装扩展呀,如果 cookie 不行可能只能尝试放内存里,明明过期时间谷歌自己写了会话关闭,但是却不删...
    DarlingXwl
        7
    DarlingXwl  
       2019-06-12 23:54:18 +08:00   ❤️ 1
    @xiaohantx 楼主 MAC 系统? 有种说法是:

    在使用 MAC 系统的时候,关闭浏览器,会话级的 cookie 并不会删除,是因为,mac 下关闭浏览器并不是浏览器真正退出,而真正退出浏览器后,cookie 才会失效。就是说要,在 docker 工具栏那里点击 chrome 图标,然后退出浏览器。这才是真正的意义的关闭浏览器。

    原话。

    我还是不能自己验证的喔。因为来自百度知道,这玩意的可信度 总是在浮动……你懂的
    xiaohantx
        8
    xiaohantx  
    OP
       2019-06-12 23:58:47 +08:00
    @DarlingXwl #7 是 mac,我还没想起来 windows 试下,我明天试下吧,谢谢啦~另外会话结束时不应该指该域名的页面关闭么= =是指浏览器退出么...
    DarlingXwl
        9
    DarlingXwl  
       2019-06-13 00:04:10 +08:00
    @xiaohantx
    chrome 浏览器是多线程的,这是我喜爱的原因,我曾经也以为关闭其中一个页面,是不是相当于这个会话的进程了,那相关的 cookie 也应该去除。

    事实跟你的认知与我的猜想是相反的,关闭标签页的确关闭了会话,字面意思和官方解释都不冲突,这点没有毛病。

    而现实是:必须结束浏览器进程才可以自动清除 cookie 临时缓存。

    而 mac 系统又有其他特殊情况。

    这就是答案了。
    phy25
        10
    phy25  
       2019-06-13 07:07:38 +08:00 via Android
    http://blog.petersondave.com/cookies/Session-Cookies-in-Chrome-Firefox-and-Sitecore/

    所以这种情况最佳实践是用 sessionStorage,跟 session cookie 不一样的。
    msg7086
        11
    msg7086  
       2019-06-13 07:34:32 +08:00
    #9 遇到歧义当然是 RFC 说话。

    RFC6265 HTTP State Management Mechanism

    Unless the cookie's attributes indicate otherwise, the cookie is
    returned only to the origin server (and not, for example, to any
    subdomains), and it expires at the end of the current session (as
    defined by the user agent). User agents ignore unrecognized cookie
    attributes (but not the entire cookie).

    其中“ it expires at the end of the current session (as defined by the user agent)”,意思是浏览器可以自行决定什么是“会话结束”。对于大多数多窗口浏览器来说,浏览器完全退出才是会话结束。只是关闭一个标签或窗口并不算会话结束,否则假如你同一个网站开了 5 个窗口,关掉一个就把另外 4 个的会话给退出了,岂不是乱套了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1299 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:35 · PVG 07:35 · LAX 15:35 · JFK 18:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.