2009-07-15 22 views
16

1つのドメインが訪問者のWebブラウザで複数のCookieを生成できますか? その場合、ユーザーがウェブサイトを表示すると、どのCookieがサーバーに配信されますか?そして、なぜウェブサイトが複数のクッキーを生成するのでしょうか?1つのドメインに複数のCookieがありますか?

Google ChromeブラウザのCookie設定を確認したところ、nytimes.comのCookieが複数あることがわかりました。

サーバーが複数のキーと値のペアをクッキーに保存する場合、同じクッキーに保存することはできませんか?

multiple cookies

cookies-1

cookies-2

答えて

14

はい:)

私はクッキーは、開発者の別々のチームによって作成されたウェブサイトの別のコンポーネントによって作成されたと推測します。すべての人の私たちは、何か開発が必要だが、コラボレーションや他のチームが必要な層を開発するのを待つ時間がない場合が多いことを認識しておく必要があります。ウィキペディアから

主要なブラウザのドメインあたりの最大保存されたクッキーの

関連カウントは以下のとおりです。

  • のFirefox 3.0:50
  • オペラ9:30
  • のInternet Explorer 7 :50
1

プログラムを書くときは、変数を1つだけ使用しますか?権利はありません?

ここでも同じクッキーは、プログラム(サーバー/クライアント)が使用できるキーと値のペアです。

+0

あなたは1枚のクッキーは唯一のキー/値ペアを保存することができます意味ですか? 私は、さまざまなキーと値のペアを同じCookieに保存できると考えています。 – ninikin

9

訪問者のWebブラウザで複数のCookieを生成できるドメインはありますか?

はい。正確な限度は、ブラウザによって異なります(Internet Explorer used to accept 20 but increased this to 50)。

もしそうなら、ユーザーがウェブサイトを閲覧すると、どのCookieがサーバーに配信されますか?

それらのすべて

そして、なぜウェブサイトが複数のクッキーを生成するのでしょうか?

すべてのデータ(システムの無関係な部分にある可能性があります)を1つのクッキーにシリアル化する必要はありません。

1

はい、1つのドメインで多くのCookieが生成される可能性があります。ブラウザで最大数はvariesです。

0

- すべてのサイトで、必要な数のCookieを作成できます。 (ただし、これはブラウザによって異なる場合があります)

- ユーザーがウェブサイトにアクセスすると、アクティブなCookieがすべて送信されます。

- 別々のデータを格納する複数のCookieを持つことは理にかなっています。極端な比較でクッキーをクラスと比較する;

5

クッキーは、単一のキーと値のペアで、ドメイン、パス、有効期限、アクセスの設定はオプションです。別のクッキーにデータを分離する

理由は次のとおりです。コードを維持するために

  • 簡単 - 状態を保存するために必要なサイトの様々なビットが1枚のクッキーにすべてをパックする相互運用する必要はありません。 。
  • エンドユーザー(あなた)は、保存されているものをより簡単に見ることができ、特定のCookieを選択的に削除することができます。
  • さまざまな用途 - セッションキーを保持するクッキーにはsecure; httpOnly;というマークを付けることができますが、UIの設定を保持するクッキーには引き続きjavascriptでアクセスできます。
  • リクエストサイズを減らす - 一部のCookieが特定のページでのみ使用されている場合は、pathプロパティを使用することができ、不要なページに対して不必要に送信されることはありません。
4

サーバーは任意の数のCookieを指定でき、各Cookieは独自のSet-Cookieヘッダーで指定されます。

Set-Cookieヘッダは、少なくともCookieName=CookieValue対を含み、いずれかsecureまたはhttpOnly属性に加えて、他のkey=valueペアを含んでいてもよいです。これらの追加のペアと属性は、実際のクッキーを参照するメタデータであり、追加のクッキーを設定するために使用することはできません。

クライアントがクッキーをサーバーに送り返すと、クライアントはクッキーをすべて1つのCookieヘッダーに結合します。これは、クライアントがメタデータを返信することはなく、クッキーの名前と値だけを返すためです。

は、このHTTP交換を考えてみましょう:

GET/HTTP/1.1 
Host: www.example.com 

HTTP/1.1 302 Found 
Location: http://www.example.com/index.html 
Set-Cookie: UserID=12345; Expires=Wed, 09 Jun 2021 10:18:14 GMT; domain=.example.com;path=/index.html; httpOnly` 
Set-Cookie: SessionID=6478; domain=.example.com;path=/index.html; httpOnly 
Set-Cookie: foo=bar 

GET /index.html HTTP/1.1 
Host: www.example.com 
Cookie: UserID=12345; SessionID=6478; foo=bar 
関連する問題