【问题标题】:Does Set-Cookie ever contain more than one cookie?Set-Cookie 是否曾经包含多个 cookie?
【发布时间】:2011-05-03 15:45:51
【问题描述】:

我正在 Node.JS 中处理一些类似浏览器的 cookie 处理,并且想知道从 NodeJS and HTTP Client - Are cookies supported? 扩展此代码的程度

代码删除第一个分号后的所有内容。

var cookie = get(response.headers, "Set-Cookie")
if (cookie) {
  cookie = (cookie + "").split(";").shift()
  set(opts.headers, "Cookie", cookie)
}

我将以有限的方式对此进行扩展,并正在研究如何避免为以后的步骤重写。

我看到使用多个 Set-Cookie 标头设置了多个 cookie。

【问题讨论】:

    标签: cookies node.js httpclient


    【解决方案1】:

    删除第一个分号后的所有内容是个坏主意,因为它带有 cookie 元数据。这是我从 StackOverflow 收到的 Set-Cookie 标头(略有编辑):

    usr=t=ABCDEFGHIJ&s=23412341234; domain=.stackoverflow.com; expires=Fri, 04-Nov-2011 07:39:57 GMT; path=/; HttpOnly
    

    设置的多个 cookie 如下所示:

    hest2=spam, pony2=spam, sovs2=spam; expires=Wed, 04-May-2011 07:51:27 GMT, NO_CACHE=Y; expires=Wed, 04-May-2011 07:56:27 GMT; path=/; domain=.something.d6.revealit.dk
    

    所以cookie字符串解析起来相当复杂,所以我不认为有一个简单的方法来完成这个......

    【讨论】:

    • 谢谢,在分号之后删除所有内容不是我的想法,而是我开始使用的代码。感谢您提供上述示例。就像我说的,我将以有限的方式对此进行扩展。目前,我可以安全地让程序在我正在做的任何意外 cookie 格式上失败,但我可能会编写一个更通用的 cookie 处理程序,我会考虑这些格式。
    猜你喜欢
    • 2011-02-22
    • 1970-01-01
    • 2019-11-12
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 2011-07-21
    相关资源
    最近更新 更多