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 / Chrome |
|---|---|---|
| 單一 Name Value 上限 | ~4KB | ~4KB |
| Name 數量上限 | ~50 個 | 500+ 仍可寫入 |
| 超額行為 | FIFO 擠掉舊 Cookie,導致當前進程無法存取,需重啟瀏覽器恢復 | 直接忽略新寫入請求,無副作用 |
localStorage(5MB+)或 Server-side Sessiondocument.cookie 寫入失敗情況,避免靜默失效