主流瀏覽器 Cookie 的大小


目前測試的兩種瀏覽器:Chrome 和 IE 。

環境:IIS 7.5

只創建了站點,未做任何配置。

Chrome : v36.0.1985.143 m

單個 Cookie 的長度為 4069 個字符(包括 name,但不包括 = 號 )。

IE : v11

單個 Cookie 的長度為 5091 個字符(包括 name,但不包括 = 號 )。

__________________________________________________ 分隔線 __________________________________________________

至於每個域里面能接收多少個 cookie 。這個在我的測試中發現當 cookie 的值大的時候,雖然寫入成功了,但是在刷新頁面或者發起別的請求的時候會出現如下的錯誤:

但是如果 cookie 的值比較小(即字符長度小)的話,則刷新頁面或發起新的請求就不會有問題。

______________________________________________ 再來一個分隔線 ______________________________________________

回到初衷

  ——也就是設計 cookie 的目的。因為 HTTP 本身是無狀態的會話,但是很多時需要一個有狀態的會話,為了這個需求設計出來了 HTTP 狀態管理機制(HTTP State Management Mechanism),即 cookie 。而一般的會話又不需要存儲大量信息客戶端(一般都為瀏覽器),所以在設計這個 cookie 的時候並沒有考慮存儲大數據量時的情況,而且實際使用時也很少需要存儲大量數據到客戶端。

  假如需要存儲大量數據到客戶端怎么辦呢?這里想到了以下幾點:

  1. 限制用戶使用最新版 chrome/FireFox/Internet Explorer 瀏覽器,如果對象不是特別大則可以使用 Web Storage
  2. 在客戶端用一個 token 標識用戶在服務器端對應的狀態,不過這個想控制好用戶的狀態,需要大量 AJAX 請求去服務器端更改用戶狀態,需要服務器牛X。實際用處也不大。
  3. 放棄用 Web 開發這個項目,使用 C/S 架構。

參考資料:

  1. http://en.wikipedia.org/wiki/Web_Storage
  2. https://www.ietf.org/rfc/rfc2109.txt


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM