一个域名是否可以在访问者的网络浏览器上生成多个Cookie? 如果是这样,当用户访问网站时,哪些cookie将被传送到服务器?为什么网站会生成多个cookie?
我查看了我的Google Chrome浏览器的Cookie设置,发现nytimes.com有多个Cookie。
如果服务器想要在cookie中存储多个键/值对,是否不能将它们存储在相同的cookie中?
答案 0 :(得分:15)
是的:)
我推测这些cookie是由网站的独立组件创建的,这些组件是由不同的开发团队创建的。我们所有人都应该意识到,当我们需要完成一些开发但没有时间等待合作或其他团队为我们开发必要的层时,通常会出现这种情况。
来自维基百科:
主要浏览器的每个域的最大存储Cookie的相关计数为:
- Firefox 3.0:50
- Opera 9:30
- Internet Explorer 7:50
答案 1 :(得分:9)
一个域名是否可以在访问者的网络浏览器上生成多个Cookie?
是。确切的限制取决于浏览器Internet Explorer used to accept 20 but increased this to 50。
如果是这样,当用户访问网站时,哪些cookie将被传送到服务器?
所有这些
为什么网站会生成多个Cookie?
这样您就不需要在一个cookie中序列化所有数据(可能来自系统的不相关部分)。
答案 2 :(得分:5)
Cookie只是一个键/值对,具有可选的域,路径,到期和访问设置。
将数据分成单独的Cookie的原因包括:
secure; httpOnly;
,而持有UI首选项的cookie仍然可以通过javascript访问。path
属性,因此不会为不需要的页面发送它们。答案 3 :(得分:4)
服务器可以指定任意数量的cookie,并且每个cookie都在其自己的Set-Cookie
标头中指定。
每个Set-Cookie
标头至少包含CookieName=CookieValue
对,除了key=value
或secure
属性外,还可能包含其他httpOnly
对。这些额外的对和属性是指实际cookie的元数据,不能用于设置其他cookie。
当客户端将cookie发送回服务器时,它会将它们全部合并到一个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
答案 4 :(得分:1)
编写程序时,只使用一个变量吗?不,对吧?
这里的原理相同 - cookies只是程序(服务器/客户端)可以使用的键/值对。
答案 5 :(得分:1)
是的,一个域可以生成许多cookie。浏览器的最大数量varies。
答案 6 :(得分:0)
- 每个网站都可以创建任意数量的cookie。 (但它的接缝可能因浏览器而异)
- 当用户访问该网站时,将发送所有活动的cookie。
- 有多个cookie来存储单独的数据是有意义的。在极端的比较中,将cookie与类比较;)