![](/img/trans.png)
[英]Limit on number of cookies allowed? - err_spdy_protocol_error
[英]Maximum number of cookies allowed
據谷歌搜索告訴我,允許的最大 cookie 數量在很大程度上取決於瀏覽器,但是我找不到任何關於現代瀏覽器允許多少 cookie 的最新數據。
我需要在 cookie 中存儲大量用戶首選項(對於尚未注冊的用戶),那么最好的方法是什么? (此外,這些 cookie 將通過 javascript 客戶端和 php 服務器端訪問)
從rfc :
至少 300 個餅干
每個 cookie 至少 4096 字節(根據 Set-Cookie 標頭的語法描述中構成 cookie 非終結符的字符的大小來衡量)
每個唯一的主機名或域名至少有 20 個 cookie
這些是最低要求。 IE6 團隊沒有意識到這一點。 其他一切都是高度特定於瀏覽器的。 您最好編寫一個測試平台來測試每個瀏覽器。 以少量增量步驟測試最大大小和數量(並檢查它們是否仍然可讀)。
另外,我似乎記得 apache 有大量 cookie 的問題。 不記得我在哪里看到過。
這是一個小 cookie 測試腳本: http : //krijnhoetmer.nl/stuff/javascript/maximum-cookies/
最好的方法是根本不將它們存儲在 cookie 中。
將它們存儲在數據庫中,並將 DB 鍵存儲在 cookie 中。 如果只是一些偏好,那么安全性就不是什么大問題。
不要忘記 cookie 將隨每個請求一起發送 - 如果您有 2kb 的 cookie 數據並在頁面上加載 10 張圖像,那么這額外的 22kb 數據。
餅干數量:
Cookie 大小限制(4096 字節):
SRC: http : //webdesign.about.com/od/cookies/f/cookies-per-domain-limit.htm和http://www.nczonline.net/blog/2008/05/17/browser-cookie-限制/
我今天研究了這個,如果你想支持大多數瀏覽器,那么每個域不要超過 50 個 cookie,每個域不要超過 4095 個字節(即所有 cookie 的總大小 <= 4095 個字節)
要閱讀有關它的更多信息,這里是測試頁和結果。
IIRC,對於大多數人來說是 20,對於某些人來說更多,而對於一種特定的瀏覽器(又是 IIRC,IE5.5?),它是 10。 最多 10 被認為是一個安全數字。
無論如何,您實際上並不需要多個 - 只需使用一個來存儲客戶端的 ID,並根據相同的 ID 存儲您需要在服務器端存儲的所有內容。 除此之外,您離開客戶端的數據越少,他們刪除/損壞/破解/等的次數就越少。
不確定從他們的角度來看這有多大意義,但我見過一些網站設置了 450 多個 cookie 並向140 多個獨特的第三方域報告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.