当您为网页提供服务时,谁在构建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