各瀏覽器中cookie個數和大小限制彙總

2021-08-31 23:04:34 字數 2029 閱讀 5689

2011-02-16 11:56:26| 分類: html|字型大小 訂閱

微軟表示,internet explorer 8增加了每個域可以儲存的cookie個數至50個,不過我發現ie7也允許每個域儲存50個cookie。當然,這可能是因為乙個系統補丁增加的,而不是這個瀏覽器版本一開始就是這樣,但是仍然超過了通常認為是20個的限制。

firefox允許每個域儲存50個cookie。

opera允許每個域儲存50個cookie。

safari/webkit是這其中最有趣的,因為它似乎沒有明顯的限制,一直到safari 3.1。我測試了一下設定10,000個cookie,結果它們全部設定成功而且還隨著cookie頭部一起傳送了。不過問題是,頭部的大小超過了限制,導致伺服器不能處理,從而發生了錯誤。

因此,我們以前認為的瀏覽器限制每個域的cookie數目為20的觀點不再正確。另乙個有趣的不一致現象是:當設定了太多cookie時,瀏覽器有什麼反應。出來safari的異常之外,其它的都設定了上限個數的cookie,這裡有兩種方式:

當cookie數量達到限制以後,最近最少使用演算法(lru)自動踢除最老的cookie,以便可以給最新的cookie騰出空間。internet explorer和opera使用這個方式。

firefox則有些奇怪:它似乎是隨機決定儲存cookie,儘管最後乙個cookie總是會儲存。似乎看不出來它遵循了什麼規則。怎麼辦?(the takeaway? )在firefox,中,不要從超過cookie的限制。

不同的瀏覽器之間,cookie的總大小也不盡相同。這一點也比較有一點難以理解,不過這裡是我的一些測試結果:

firefox和safari允許cookie最長為4097個字元,即cookie的名(name)和值(value)總共可以長達4096個字元,還有乙個等號(=)。

opera則允許cookie最長為4096個字元,包括名(name)、值(value)和等號(=)。

internet explorer允許cookie最長為4095個字元,包括名(name)、值(value)和等號(=)。

這裡要注意的是,這裡的測試都是使用的單位元組字元;雙位元組字元長度將會自然地記為2。在所有的瀏覽器中,只要長度超過了限制的cookie都將被忽略,並且永遠不會被設定。

在做完這些測試以後,我得出的結論是傳統的對於cookie的限制(大多是從原始的cookie規範中得來的)的理解不再正確。我們在使用cookie時應該非常謹慎,並始終以最低限度使用。

一、瀏覽器允許每個網域名稱所包含的cookie數:

microsoft指出internetexplorer8增加cookie限制為每個網域名稱50個,但ie7似乎也允許每個網域名稱50個cookie。

firefox每個網域名稱cookie限制為50個。

opera每個網域名稱cookie限制為30個。

safari/webkit貌似沒有cookie限制。但是如果cookie很多,則會使header大小超過伺服器的處理的限制,會導致錯誤發生。

注:「每個網域名稱cookie限制為20個」將不再正確!

二、當很多的cookie被設定,瀏覽器如何去響應。

除safari(可以設定全部cookie,不管數量多少),有兩個方法:

最少最近使用(leastrecentlyused(lru))的方法:當cookie已達到限額,自動踢除最老的cookie,以使給最新的cookie一些空間。internetexplorer和opera使用此方法。

firefox很獨特:雖然最後的設定的cookie始終保留,但似乎隨機決定哪些cookie被保留。似乎沒有任何計畫(建議:在firefox中不要超過cookie限制)。

三、不同瀏覽器間cookie總大小也不同:

firefox和safari允許cookie多達4097個位元組,包括名(name)、值(value)和等號。

opera允許cookie多達4096個位元組,包括:名(name)、值(value)和等號。

internetexplorer允許cookie多達4095個位元組,包括:名(name)、值(value)和等號。

注:多位元組字元計算為兩個位元組。在所有瀏覽器中,任何cookie大小超過限制都被忽略,且永遠不會被設定。

各瀏覽器Cookie大小 個數限制

今天在測試ticket時,發現原來儲存的cookie莫名其妙的就被清除了,自己沒有做過任何的改動。後來發現,應該是cookie數量達到了瀏覽器的限制。網上查詢出來的結果是 一 瀏覽器允許每個網域名稱所包含的cookie數 microsoft指出internetexplorer8增加cookie限制為...

各瀏覽器Cookie大小 個數限制

一 瀏覽器允許每個網域名稱所包含的cookie數 microsoft指出internetexplorer8增加cookie限制為每個網域名稱50個,但ie7似乎也允許每個網域名稱50個cookie。firefox每個網域名稱cookie限制為50個。opera每個網域名稱cookie限制為30個。s...

瀏覽器cookie和session

1 cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上 2 cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,如果主要考慮到安全應當使用session 3 session會在一定時間內儲存在伺服器上。當訪問增多,會比較占用你伺服器的效能,如果主要考...