【问题标题】:Why cookies appear in request header but not response header when visiting a new website?访问新网站时,为什么 cookie 出现在请求标头中而不是响应标头中?
【发布时间】:2019-09-17 20:06:12
【问题描述】:

这是 chrome 访问 oracle 中的隐身窗口。请注意,请求标头中已经包含 cookie。

我也尝试在 php 和 postman 中使用 GuzzleHttp。我无法从任何地方获取 cookie。

实际上我正在尝试抓取其他网站,而该网站也有同样的问题。我拿不到 cookie 所以被拒绝了。

cookie 不是服务器返回给浏览器的东西吗?为什么在这种情况下它就像浏览器首先知道 cookie?

【问题讨论】:

  • “cookie 不是服务器返回给浏览器的东西吗?” - 服务器可以在响应中指示客户端,它想要设置一个 cookie - 当然,它并不必须
  • “为什么在这种情况下,浏览器首先知道 cookie?” - 很可能只是因为您之前访问过该站点,并且设置了 cookie那么。
  • @04FS。你可以试试,告诉我你得到了什么。我尝试清除 cookie 几次,结果还是一样。

标签: cookies


【解决方案1】:

Http cookie 在服务器的响应中设置一次(带有Set-Cookie 标头),然后它们被浏览器包含在每个适用的后续请求中。 因此,您的浏览器已经获得的 cookie 出现在请求中但不出现在响应中是完全正常的。

Cookie 也可以由 Javascript 在浏览器端设置,但这也不能在第一次请求之前发生(至少检索该 Javascript)。

【讨论】:

  • 我知道 cookie 和 session 的基础知识。我让我的朋友尝试了这 2 个网站,但 chrome 调试工具中的第一个请求仍然有 cookie。你也可以试试。
  • @bijiDango Cookie 不会突然出现。您发出的第一个请求将永远不会在请求中包含 cookie。尝试打开一个隐身窗口,打开网络工具,然后访问该页面。第一个请求将不包含任何 cookie。 Cookie 也不必由Set-Cookie 设置。它们也可以通过 JavaScript 设置。
  • @Ivar。非常好的工具隐身窗口。我试过了,very first request 实际上已经包含 cookie。
  • @bijiDango 然后我怀疑这实际上是第一个请求。在打开这个隐身窗口之前,您是否关闭了所有其他隐身窗口?也许你安装了一些插件?你也直接去index.html吗?如果不是,那么至少在此请求之前应该有一些重定向。 (尝试在过滤器中选择“All”而不是“XHR”)如果我提出请求,cookie 标头肯定不存在。话虽如此,它很难复制。我不知道您是从哪里提出请求的,但来自欧洲,我们收到了一个很好的请求,我们是否接受他们的 cookie。
  • @Ivar 是的,你是对的。我没有注意到我只检查了 XHR 部分。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 2016-03-21
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
相关资源
最近更新 更多