2008年12月10日星期三

Internet Explorer 中的 Cookie 的数字和大小限制

Microsoft Internet Explorer complies with following RFC 2109 recommended minimum limitations:

* 至少 300 Cookie
* 至少为 4096 字节每个 Cookie (如度量由组成 Cookie 非终端 Set-Cookie 标头的语法描述中字符的大小)
* 每个唯一的主机或域名称至少 20 个 Cookie

注意 these recommended minimum limitations appear in RFC 2109,section 6.3,"Implementation Limits"。 有关详细信息,请参见"参考"一节。

每个 Cookie 开头名称-值对。 此对之后通过零或用分号分隔的多个属性-值对。 为一个域名称,每个 Cookie 被限制为 4,096 字节。 这个总数可以作为一个名称-值对的 4 千字节 (KB) 存在或为最多 20 个名称 / 值对的总 4 KB。如果计算机没有足够的空间来存储 Cookie,该 Cookie 将被丢弃。 则不截尾取整。 应用程序应使用尽可能少的 Cookie 可能作为小型和一个 Cookie 尽可能。 此外,应用程序应该能够处理 Cookie 的丢失。

如果 Web 应用程序使用多个 19 自定义 Cookie,ASP 会话状态可能会丢失。 Internet Explorer 4.0 和更高版本允许每个域的 20 个 Cookie 总共。 因为如果您使用 20 个或更多自定义 Cookie ASPSessionID 是一个 Cookie,在浏览器被强制删除 ASPSessionID Cookie 并丢失该会话。

若要存储超过 20 个名称 / 值对域的可以通过连接多达该 Cookie 4,096 字节的限制每个 Cookie 几个名称 / 值对创建 Cookie 字典。当前,以便从客户端脚本中检索这些值,您必须分析 Cookie 手动。 但是,Active Server Pages 请求 和 响应 对象包括内置功能使用 Cookie 词典作为词典对象。 following sample code demonstrates of in ASP page cookie dictionary use:


%
Response.Cookies ("MyCookie")("a")="A"
Response.Cookies ("MyCookie")("b")="B"
Response.Cookies ("MyCookie")("c")="C"
Response.Cookies ("MyCookie")("d")="D"
Response.Cookies ("MyCookie")("e")="E"
Response.Cookies ("MyCookie")("f")="F"
Response.Cookies ("MyCookie")("g")="G"
Response.Cookies ("MyCookie")("h")="H"
Response.Cookies ("MyCookie")("i")="I"
Response.Cookies ("MyCookie")("j")="J"
Response.Cookies ("MyCookie")("k")="K"
Response.Cookies ("MyCookie")("l")="L"
Response.Cookies ("MyCookie")("a1")="A"
Response.Cookies ("MyCookie")("b1")="B"
Response.Cookies ("MyCookie")("c1")="C"
Response.Cookies ("MyCookie")("d1")="D"
Response.Cookies ("MyCookie")("e1")="E"
Response.Cookies ("MyCookie")("f1")="F"
Response.Cookies ("MyCookie")("g1")="G"
Response.Cookies ("MyCookie")("h1")="H"
Response.Cookies ("MyCookie")("i1")="I"
Response.Cookies ("MyCookie")("j1")="J"
Response.Cookies ("MyCookie")("k1")="K"
Response.Cookies ("MyCookie")("l1")="L"

Response.Cookies("MyCookie").Expires = "12/31/2001"


For Each strKey In Request.Cookies
Response.Write strKey & " = " & Request.Cookies(strKey) & "

"
If Request.Cookies(strKey).HasKeys Then
For Each strSubKey In Request.Cookies(strKey)
Response.Write "->" & strKey & "(" & strSubKey & ") = " & _
Request.Cookies(strKey)(strSubKey) & "
"
Next
End If
Next
%


Note In Internet Explorer 5.0 and later,can use userData behavior to across sessions persist data. this behavior has greater than cookies capacity。

如果您使用 document.cookie 属性来检索该 Cookie 在客户端,将 document.cookie 属性可以检索仅 4,096 字节。 这个字节总数可以是 4 KB,一名称 / 值对或它可以是具有总大小为 4 KB 的最多 20 个名称 / 值对。

document.getcookie 函数在 Microsoft HTML 中调用 CDocument::GetCookie 方法。

for more information,click to view in Microsoft Knowledge Base article following article number:
820536 Document.Cookie 属性返回一个空字符串

官方看:http://support.microsoft.com/kb/306070/zh-cn

没有评论: