在 NGINX 中按域解析 cookie

在 NGINX 中按域解析 cookie

我在客户端上有两个同名 userId 的 cookie。它们仅在域集上有所不同。一个是 tradernet.com,另一个是 .tradernet.com

如果我使用 $cookie_userId,nginx 会捕获第一个,但并不总是同一个。如何在 nginx 中捕获具有精确域的 cookie?

答案1

你不能这样做,因为域名不是客户端发送的 Cookie 标头内容的一部分。以下是 RFC 6265 中关于如何构建 Cookie 标头值的相关摘录:

用户代理必须使用与以下算法等效的算法从 cookie 存储和请求 uri 中计算“cookie 字符串”:

  1. 让 cookie-list 成为来自 cookie 存储区的一组满足以下所有要求的 cookie :[...]

  2. 用户代理应该按照以下顺序对 cookie 列表进行排序:[...]

  3. 将 cookie 列表中的每个 cookie 的最后访问时间更新为当前日期和时间。

  4. 按顺序处理 cookie 列表中的每个 cookie,将 cookie 列表序列化为 cookie 字符串:

    1. 输出 cookie 的名称、%x3D(“=”)字符以及 cookie 的值

    2. 如果cookie-list中有未处理的cookie,则输出字符%x3B和%x20(“;”)。

相关内容