Cookie如何与HTTP协同工作?

时间:2017-04-13 17:50:31

标签: http cookies

我最近在以某个用户身份登录时,为youtube请求使用了网络检查器。

我注意到像

这样的请求

https://www.youtube.com/my_videos?o=U

请求看起来像enter image description here

那么youtube甚至可以告诉当前用户是什么?请求标头非常空。所以它没有任何类型的会话令牌或其他东西。

我的猜测是它以某种方式读取我的浏览器cookie。

这是否意味着,每次发出请求时,与此网站相关的所有浏览器Cookie都会与HTTP请求一起发送?

1 个答案:

答案 0 :(得分:1)

Provisional headers are shown消息显示在Request Headers中,因为DevTool中显示的标题不是发送到服务器的实际标题。这可能是由多种原因造成的:AdBlock,使用缓存,请求待处理等。您可以查看"CAUTION: provisional headers are shown" in Chrome debugger以进行之前的讨论。

那么youtube甚至可以告诉当前用户是什么?请求标头几乎是空的。

它不是空的,标题只是不在DevTool中显示。

这是否意味着,每次发出请求时,与此网站相关的所有浏览器Cookie都会与HTTP请求一起发送?

不完全是。这取决于Cookie domainpath。如果Cookie的domain与HTTP请求的主机匹配,并且其path与HTTP请求的URL路径匹配,则Cookie将被发送到服务器。否则,它将在HTTP请求中被忽略。

例如,有3个cookie:

  • Cookie A,domainexample.compath/
  • Cookie B,其domaintest.example.compath/
  • Cookie C,其domainexample.compath/list

当请求发送到http://example.com/news时,只有Cookie A被发送到服务器,Cookie B和C将被忽略。