據Google的搜索告訴我,cookie的最大允許數量很大程度上取決於瀏覽器,但我無法找到任何最新的數據,以瞭解現代瀏覽器允許多少cookie。允許的最大cookie數
我需要存儲在cookie中有點大量的用戶偏好(對於尚未註冊的用戶),那麼這將是這樣做的最佳方式? (另外,這些Cookie將訪問都通過javascript客戶端和php服務器端)
據Google的搜索告訴我,cookie的最大允許數量很大程度上取決於瀏覽器,但我無法找到任何最新的數據,以瞭解現代瀏覽器允許多少cookie。允許的最大cookie數
我需要存儲在cookie中有點大量的用戶偏好(對於尚未註冊的用戶),那麼這將是這樣做的最佳方式? (另外,這些Cookie將訪問都通過javascript客戶端和php服務器端)
從rfc:
至少300餅乾
每如由 字符包含該cookie非末端在語法的大小測量的cookie(至少4096字節 Set-Cookie頭部的描述)
每個唯一的主機或域名至少有20個餅乾
這些是最低要求。 IE6團隊沒有得到。其他一切都是高度針對瀏覽器的。你最好寫一個測試平臺來測試每個瀏覽器。用小增量步驟測試最大尺寸和數量(並檢查它們是否仍可讀)。
此外,我似乎記得apache有一個問題與數量的餅乾。不記得我見過的地方。
這裏是一個小cookie的測試腳本: http://krijnhoetmer.nl/stuff/javascript/maximum-cookies/
最好的辦法是不將它們存儲在cookie中的。
將它們存儲在數據庫中,並將數據庫密鑰存儲在cookie中。如果只是一些偏好,那麼安全性就不是什麼問題。
不要忘記,餅乾將每個請求發送 - 如果你有cookie數據和加載頁面上的10張圖像的2KB,這是數據的一個額外的22KB。
IIRC,這是20對大多數一般情況下,更多一些,和10一個特定的瀏覽器(IIRC再次,IE5.5?)。最多10個被認爲是一個安全號碼。
你並不真的需要一個以上的反正 - 只需使用一個存儲的ID的客戶端和存儲需要存儲在服務器端對同一ID的一切。除此之外,客戶離開的數據越少,他們移除/腐敗/黑客等的次數就越少。
我看着這個在今天,如果你想支持大多數瀏覽器,然後不超過每50塊域餅乾,並且不超過4095個字節每域(即所有cookies的總大小< = 4095字節)
要了解更多信息,here is the test page and results。
數量的Cookies:
曲奇大小的限制(4096個字節):
SRC:http://webdesign.about.com/od/cookies/f/cookies-per-domain-limit.htm和http://www.nczonline.net/blog/2008/05/17/browser-cookie-restrictions/
不知道它從他們的角度來看多少常識讓,但I've seen websites in the wild是被設定在450塊餅乾和reporting to over 140 distinctive third party domains。
它們也被存儲在數據庫中,但是,我們假設會有足夠多的訪問者,所以我覺得在每個頁面請求中爲20到50個值顛倒數據庫感到有些不安。 。餅乾至少會帶走部分負載。 – pilsetnieks 2008-11-12 12:30:48
你只需要將它們從數據庫中拉出來,然後將它們放入會話中。 – Greg 2008-11-12 12:32:25