【问题标题】:Is there another way to set cookies than through HTTP headers?除了通过 HTTP 标头之外,还有另一种设置 cookie 的方法吗?
【发布时间】:2019-10-16 09:59:27
【问题描述】:

我正在编写一些 http 客户端代码来与网站交互,我需要设置一些 cookie。只需访问该网站即可设置 4 个 cookie(如 Chrome 设置中所示)。

但是,当我查看设置这些 cookie 的 HTTP 响应标头时(使用 Live HTTP Headers 扩展),任何地方都没有 Set-Cookie 标头。这些 cookie 是如何设置的?除了通过 Set-Cookie 之外,还有其他方法吗?

编辑:一些 cookie 是 HttpOnly。

【问题讨论】:

    标签: http cookies https http-headers


    【解决方案1】:

    据我所知,如果您的 javascript 或 python 代码为该域设置了 cookie,则响应将包含 SET-COOKIE 字段。您至少可以从检查控制台查看。

    所以我看到您正在使用 HTTP 实时扩展,但它看起来不像在响应中显示该字段。

    我尝试寻找其他可以显示它的扩展程序,但据我所知我找不到。我想我们都可以随时退回到 chrome 检查控制台。如果您转到网络选项卡,您实际上应该会看到 req-resp。

    【讨论】:

    • 我正在使用 Live HTTP 标头,虽然:chrome.google.com/webstore/detail/live-http-headers/…
    • 是的,在您在原始帖子中提到它之后,我尝试了它。它看起来不像显示那些标题。
    • 你知道一个显示 Set-Cookie 标头的扩展吗?
    • 所以我很遗憾找不到我所知道的。我的答案应该更新,就像我和我的同事谈过一样。所以更清楚一点,据我所知,您应该始终能够在响应中看到 SET-COOKIE 标头。我提出的纯 HTTP 业务实际上是关于请求的。假设 HTTP-only 字段设置为 false,则应该显示一个 cookie 字段。
    【解决方案2】:

    如果您在浏览器中加载网站,它可能还会加载其他也可以设置 cookie 的资产(假设它们位于同一域中)。

    但还有另一种设置 cookie 的方法:通过document.cookies 使用 Javascript。

    【讨论】:

    • 是的,我查看了所有 HTTP 请求(用于图像和脚本),但没有一个响应包含 Set-Cookie。那么那些在 chrome 设置中具有“可访问脚本:否(HttpOnly)”的 cookie 呢?
    • httponly cookie 只能通过 HTTP 响应设置。
    • 是的,没错,在任何 HTTP 响应中都没有 Set-Cookie。
    • 抱歉,我可能不太清楚。这两个是唯一可以设置 cookie 的两种方式。那应该回答你的问题。如果您看不到它,则说明您没有找对地方。
    • 为什么我的浏览器中设置了一些 HttpOnly cookie 而没有任何 Set-Cookie 标头?
    猜你喜欢
    • 2017-04-24
    • 2012-10-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    相关资源
    最近更新 更多