當您爲網頁提供服務時,誰在構建DOM文檔?它是嚴格的服務器打印HTML?瀏覽器如何參與?我特別感興趣的是瞭解document.cookie屬性如何填充。如何構建DOM對象document.cookie屬性?
A)服務器填充了document.cookie
- 瀏覽器會存儲在用戶的硬盤驅動器foobar.com的cookie。
- 下次訪問foobar.com時,瀏覽器會將foobar.com的所有cookie顯示給服務器。
- 服務器根據這些cookie構建DOM document.cookie屬性。
B)瀏覽器填充的document.cookie
- 瀏覽器存儲用於在用戶的硬盤驅動器foobar.com的cookie。
- 下次訪問foobar.com時,服務器繼續構建和提供HTML。
- 某處在瀏覽器抓取硬盤驅動器上的所有cookie並填充document.cookie之前或之後。
我對這些信息感興趣,因爲我正在研究如何在代理服務器上清除Cookie,如Varnish和Squid可以影響Cookie。如果document.cookie是由服務器構建的(上面的選項A),那麼我會認爲代理的cookie剝離會影響document.cookie屬性。然而,我認爲B認爲B是這種情況,因爲我在一個Varnish服務器中有一個指令,專門剝離一個cookie,但是cookie的數據在document.cookie中仍然保留,即使從請求中剝離了它。
這個問題對於擁有Varnish網站的人來說尤其重要,因爲附帶cookie的請求會否定使用緩存數據並生成後端命中。
這不是一個真正的DOM對象... – Pointy 2011-04-27 21:38:22
http://en.wikipedia.org/wiki/HTTP_cookie - 瀏覽器通過將所有cookie添加到所有請求來發送所有cookie。服務器也可以添加或刪除Cookie。 document.cookie是客戶端腳本可訪問的cookie的瀏覽器副本。爲什麼你想讓cookie成爲我不知道的DOM對象。 – mplungjan 2011-04-27 21:39:24
另外,它是(B),或多或少。 – Pointy 2011-04-27 21:39:34