2017-04-13 87 views
0

我剛剛使用網絡檢查器作爲某些用戶登錄時的YouTube請求。Cookie如何與HTTP協同工作?

我注意到,對於像

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

請求請求看起來像enter image description here

那麼YouTube如何甚至告訴當前用戶是什麼呢?請求標頭非常空。所以它沒有任何種類的會話令牌或其他東西。

我的猜測是它以某種方式讀取我的瀏覽器cookie。

那麼這是否意味着,每次發出請求時,與本站點相關的所有瀏覽器cookie都與HTTP請求一起發送?

回答

1

Provisional headers are shown消息顯示在Request Headers中,因爲DevTool中顯示的標題不是發送到服務器的實際標題。這可能是由以下幾個原因造成的:使用AdBlock,緩存,請求未決等。您可以檢查"CAUTION: provisional headers are shown" in Chrome debugger以進行以前的討論。

那麼你怎麼知道當前用戶是什麼?請求標頭非常空。

它不是空的,頭文件只是不顯示在DevTool中。

那麼這是否意味着,每次發出請求時,與本網站相關的所有瀏覽器cookie都與HTTP請求一起發送?

不完全。這取決於cookie的domainpath。如果Cookie的domain與HTTP請求的主機相匹配,並且其path與HTTP請求的URL路徑匹配,則Cookie將被髮送到服務器。否則,它將在HTTP請求中被忽略。

例如,有3周的Cookie:

  • 餅乾A,其domainexample.compath/
  • Cookie B,其domaintest.example.compath/
  • Cookie C,其domainexample.com, path/list

當請求發送到http://example.com/news時,只有Cookie A發送到服務器,Cookie B和C將被忽略。

+0

感謝您的解釋。完善! – user1017674