Cookie個數限制及大小
阿新 • • 發佈:2020-10-13
各瀏覽器之間對cookie的不同限制:
IE6.0 | IE7.0/8.0 | Opera | FF | Safari | Chrome | |
cookie個數 | 每個域為20個 | 每個域為50個 | 每個域為30個 | 每個域為50個 | 沒有個數限制 | 每個域為53個 |
cookie大小 | 4095個位元組 | 4095個位元組 | 4096個位元組 | 4097個位元組 | 4097個位元組 | 4097個位元組 |
總之,在進行頁面cookie操作的時候,應該儘量保證cookie個數小於20個,總大小 小於4KB
雖知Cookie有限制,但未曾詳細瞭解。以下是我遇到的問題,使用者莫名其妙的未登入。
以下是我根據問題進行的模擬:就像問卷調查一樣,每一道題都對應有一個或多個答案,有時,一套題太長,如300道題。
這麼長的題很有必要通過Cookie記錄下他答題的答案,方便他下次繼續答題。
原來的做法是,以題號為cookie的key,答案為cookie的value。
結果測試時,有一套長187道的題無法提交!詳細跟蹤居然是 未登入是(苦逼的是查了好久答題的邏輯)
答題結果是以Ajax方式提交,為了防止提交失敗,是在提交成功後才清除Cookie的! 而在Ajax提交前後,JSESSIONID竟然由 “ 63F2103B79B0AEB0307A9CA81D5188FF” 變為 “ A3C497EAA3EF6D56ED29C542328974C2”
第一次請求是 的JSESSIONID=63F2103B79B0AEB0307A9CA81D5188FF
由於頁面上js的寫的Cookie個數過多(內容過長),把伺服器寫入Cookie中的JSESSIONID給衝沒了,而伺服器在下一次請求中沒能找到JSESSIONID,又重新分配JSESSIONID,故原Session失效,顯示未登入!
轉載於:https://my.oschina.net/gaollg/blog/71299