2

Web ページが表示されたとき、DOM ドキュメントを作成するのは誰ですか? 厳密にはサーバー印刷HTMLですか?ブラウザはどのように関与していますか?document.cookie プロパティがどのように設定されているかを知りたいです。

A)サーバーは document.cookie に入力します

  1. ブラウザは、foobar.com の Cookie をユーザーのハード ドライブに保存します。
  2. 次に foobar.com にアクセスすると、ブラウザは foobar.com のすべての Cookie をサーバーに提示します。
  3. サーバーは、これらの Cookie に基づいて DOM の document.cookie プロパティを構築します。

B)ブラウザは document.cookie を入力します

  1. ブラウザは、foobar.com の Cookie をユーザーのハード ドライブに保存します。
  2. 次に foobar.com にアクセスすると、サーバーは HTML の構築と提供を続けます。
  3. ブラウザーがハード ドライブ上のすべての Cookie を取得して document.cookie に入力する前または後のどこかです。

Varnish や Squid などのプロキシ サーバーでの Cookie の削除が Cookie にどのように影響するかを研究しているため、この情報に興味があります。document.cookie がサーバーによって作成された場合 (上記のオプション A)、プロキシによる Cookie の削除が document.cookie プロパティに影響を与えると思います。ただし、Varnish サーバーに Cookie を具体的に削除するように指示があるため、B が当てはまると考える傾向がありますが、Cookie のデータは、リクエストから削除した後でも document.cookie に保持されます。

この質問は、Varnish の背後にある Web サイトを持っている人にとって特に重要です。Cookie が添付されたリクエストは、キャッシュされたデータの使用を無効にし、バックエンド ヒットを生成するためです。

4

2 に答える 2

2

DOMは、サーバーの応答に基づいてブラウザーによって構築および使用されます。ブラウザのレイアウトエンジンの仕事の一部は、サーバーから返されたHTMLをDOMに解析することです。残念ながら、ブラウザが異なれば使用するレイアウトエンジンも異なるため、DOMツリー内で違いが生じることがあります。

document.cookieは、具体的にはDOMレベル1仕様の属性です。言われたように、正解は多かれ少なかれ(B)です。Cookieは、クライアントがサーバーに送信する要求の一部としてパッケージ化されます。サーバーは応答でCookieを設定できますが、最終的にはすべてクライアント側に存在します。

于 2011-04-27T22:00:09.937 に答える
1

サーバーは、データを解釈して DOM ツリーを構築するブラウザにデータを送信します。Cookie はデータと共に送信され、DOM に組み込まれるのではなく、ローカル マシンに保存されます。基本的に B. ブラウザはマシン上の Cookie を操作できます。サーバーは、発行したすべての Cookie を操作できます。

于 2011-04-27T21:45:09.023 に答える