2009-07-15 124 views
16

一个域可以在访客的网页浏览器上生成多个Cookie吗? 如果是这样,当用户浏览网站时,哪些cookie将被传送到服务器?为什么网站会生成多个Cookie?一个域可以有多个Cookie吗?

我检查了我的Google Chrome浏览器的Cookie设置,发现nytimes.com有多个Cookie。

如果服务器想要在cookie中存储多个键/值对,是不是可以将它们存储在相同的cookie中?

multiple cookies

cookies-1

cookies-2

回答

14

是:)

我推测,小甜饼该网站,这是由开发商独立的团队创建的独立组件创建。在所有人中,我们都应该认识到,当我们需要完成一些开发,但没有时间等待协作或其他团队为我们开发必要的层时,情况往往如此。

维基百科:

每个域的最大存储的cookie的主流浏览器的相关计数为:

  • 火狐3.0:50
  • 歌剧9:30
  • 的Internet Explorer 7 :50
1

当你编写一个程序时,你只使用一个变量吗?无权利?

这里的原则相同 - cookies只是您的程序(服务器/客户端)可以使用的键/值对。

+0

你的意思是一个饼干只能救一个键/值对? 我认为各种键/值对可以存储在同一个cookie中。 – ninikin 2009-07-15 14:52:52

9

一个域可以在访问者的Web浏览器上生成多个Cookie吗?

是。确切的限制取决于浏览器,Internet Explorer used to accept 20 but increased this to 50

如果是这样,当用户浏览网站时,哪些cookie将被传送到服务器?

所有这些

和为什么一个网站生成多个cookie?

因此,您不需要在一个cookie中串行化所有数据(可能来自系统的无关部分)。

1

是的,一个域可以产生很多饼干。浏览器的最大号码为varies

0

- 每个网站都可以创建任意数量的cookies。 (但它接缝可能因浏览器不同而不同)

- 当用户访问网站时,所有活动的cookie都将被发送。

- 有多个cookie来存储单独的数据是有意义的。在一个极端的比较比较饼干类;)

5

一个cookie只是一个键/值对,可选的域,路径,到期和访问设置。

原因将数​​据分成单独的cookie,包括:

  • 更易于维护的代码 - 需要存储状态不需要彼此互操作给它的所有包装成一个Cookie的网站的各个位。
  • 更简单的用户管理 - 最终用户(您)可以更轻松地查看存储的内容,并且可以选择性地删除某些Cookie。
  • 不同的用法 - 例如,持有会话密钥的cookie可以标记为secure; httpOnly;,而拥有UI首选项的cookie仍然可以通过JavaScript访问。
  • 减小请求大小 - 如果某些cookie仅用于某些页面,则可以使用path属性,以免它们不必要地发送给不需要的页面。
4

服务器可以指定任意数量的cookie,并且每个cookie都在其自己的Set-Cookie标头中指定。

每个Set-Cookie头包含至少CookieName=CookieValue对,并且可以含有其它key=value对除了任一个securehttpOnly属性。这些额外的配对和属性是指实际cookie的元数据,不能用于设置其他cookie。

当客户端将cookies发送回服务器时,它将它们全部组合成单个Cookie标题。这是可能的,因为客户端永远不会发回元数据,只有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 
相关问题