我正在学习cookie,在编写依赖cookie来存储状态的Web应用程序时,我想知道浏览器的支持.
对于每个域/网站,可以向浏览器发送多少个cookie,大小是多少?
如果发送和存储多个cookie,是否会影响性能?
Joe*_*hts 49
每个域不超过50个cookie,每个cookie最多4 KB(甚至总共4 KB,请参阅Iain的回答).在IE 6上,它曾经是每个域20个cookie.
通常,建议在服务器上保留状态,并仅将cookie用于会话跟踪.它们与每个请求一起发送,因此如果目的是保持会话状态,它们会形成不必要的开销.
如果您确实希望在客户端上保持状态,并且可以使用JavaScript来执行此操作,则可以选择.直接使用各种存储API或查找包含详细信息的包装库.
客户端存储选项:
不推荐的存储选项:
因此,通常对于客户端存储,它取决于用例:
Iai*_*ain 24
Cookie大小限制
如果你想支持大多数浏览器,然后不超过每50块域饼干,和每个域4093个字节.也就是说,所有cookie的大小不应超过4093字节.
表现思想
每次域名请求都会发送Cookie,其中包括图片.为了论证,假设您的网站上有30个资源,并且有4093个字节的cookie.这意味着用户正在上传122Kb的数据.因此,如果我有1Mbit上传连接,则需要至少1秒钟.
如果您想查看我创建的cookie测试页面,或想了解更多相关信息,请查看浏览器Cookie限制.
Has*_*yed 14
首先,我建议你不要担心这个问题.有AMPLE空间来序列化大量的标识符.
其次,它不是web-server由web-domain- 例如,www.google.com而不是由服务于Google域的100个不同物理服务器存储的.
第三,如果你不必担心知道有两个可能的cookie标题.这些cookie标头的大小由浏览器软件限制决定.
设计讨论
您不想使用cookie标头的是发送有关客户端会话的详细信息.例如,如果您正在构建电子邮件前端,请不要尝试填写客户端正在键入cookie的电子邮件.相反,您将向客户端发送代表其身份+会话的cookie:您将所有会话数据存储在此身份中.您可以为每个cookie标头存储数十个标识符(4-16个字节),并且没有人需要超过4个标识符.cookie数据(作为整数)往往被编码为base64,这增加了字节数.
性能
您的浏览器会向Web服务器发送大量标头.cookie只是另一个100-1000字节(大多数接近100).在两个极端情况下,将这些发送到Web服务器只需要一小部分时间 - 当然放在上下文中.您应该记住,Web是基于文本的协议构建的.
如果您担心由于在每个服务器请求上发送大型cookie而导致性能下降,那么最好将所有静态文件(图像,CSS等)放入站点的子域中,例如http://static.yourdomain.com.
这样,只要您的站点www.yourdomain.com 要求提供静态文件(如图像),浏览器就不会再发送cookie和HTTP请求了.
资料来源:http://developer.yahoo.com/performance/rules.html#cookie_free
| 归档时间: |
|
| 查看次数: |
56965 次 |
| 最近记录: |