首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

實測瀏覽器 Cookie 限制:單一 Name 4KB、IE10 最多 50 個、超額行為大不同

     編輯:更多程式設計知識

Cookie 限制常被誤解為「單域名總共 4KB」,實測發現:每個 Name 的 Value 上限約 4KB,而非共享總量。名稱數量與溢位行為跨瀏覽器差異極大。

測試程式碼

for (var ii = 0; ii < 5000; ii++) {
    if (!window.ia) window.ia = 0;
    window.ia++;
    var s = 'a' + window.ia + '=';
    for (var i = 0; i < 4000; i++) s += '' + parseInt(Math.random() * 10);
    s += ';';
    document.cookie = s;
}

實測結果(IE10 / Firefox 22 / Chrome)

項目IE10Firefox / Chrome
單一 Name Value 上限~4KB~4KB
Name 數量上限~50 個500+ 仍可寫入
超額行為FIFO 擠掉舊 Cookie,導致當前進程無法存取,需重啟瀏覽器恢復直接忽略新寫入請求,無副作用

開發建議

  • 以 IE10 最嚴格標準為準:單域名 Cookie 數量控制在 50 個以內
  • 單一 Cookie 值控制在 4KB 以下(建議 3KB 內留有餘裕)
  • 大量資料改用 localStorage(5MB+)或 Server-side Session
  • 監控 document.cookie 寫入失敗情況,避免靜默失效
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved