2011-01-05 77 views
1

我想要保存在一個cookie中的大字符串,但是我不知道最佳做法是每個cookie的最大字符串長度以及最大cookie計數。使用ASP.NET在Cookies中分割並重新組合一個大字符串

我應該使用什麼邏輯來拆分字符串,然後再組合一組cookie?

(微軟ADFS也許SiteMinder的做這個技術,所以我會有興趣thier實現是什麼)

回答

1

餅乾是由瀏覽器處理的東西,所以每個瀏覽器都有不同的限制。

斯普利特cookie可以幫助只是暫時的,因爲也有到每個站點的Cookie總數數據的限制,也是你的每一頁上的數據傳輸增加的開銷

的限值爲每一個瀏覽器每個Cookie:
的Internet Explorer處理約3904個字節
Mozilla Firefox瀏覽器處理約3136個字節最大餅乾最大的cookie

當我做在Chrome,具有較大的cookie裏面的鍍鉻崩潰一些測試,並沒有消息顯示下面的網頁。

現在,網景和微軟都已經制定限制在RFC餅乾基地的數量措施Cookie總數2109個侷限性數到300裁判:http://www.cookiecentral.com/faq/#2.5
這是有很多原因做了,其中一人是黑客,成像一個網站,並上傳一個完整的視頻上的餅乾:)並充滿了你的硬盤上它...

我說最好的做法是保持一個小的cookie參考瀏覽器,並將它與服務器上的真實數據連接起來。從各方面來看,越小越好。

如何使你的測試的cookie,你可以做一個這樣的代碼。

if(Request.Cookies["cookieTest"] == null) 
    Request.Cookies["cookieTest"].Value = "more text into cookie"; 
else 
    Request.Cookies["cookieTest"].Value += "more text into cookie"; 

// check now the size 
Responce.Write(Request.Cookies["cookieTest"].Value.Length); 

當您嘗試在Cookie上使用不受控制的大數據時,我的經驗顯示出許多隨機意外的問題。我聽到很多次支持說:清除你的cookies並再次嘗試:)

+0

謝謝你,你理解我的概念。但我會很樂意找出設置和數值的最低公分母。我想記住手機(黑莓,iphone,ipad)和不同的版本。 – LamonteCristo 2011-01-05 20:34:31

+0

@ makerofthings7我不瞭解手機,因爲我目前沒有人做測試。如果你在谷歌上搜索,怎麼可能?這些標準在這裏http://www.ietf.org/rfc/rfc2109.txt – Aristos 2011-01-05 22:12:37

+0

我的印象是許多設備不一致地遵守標準。我是否可以依靠RFC來實際實施Cookie?從我讀過的所有內容來看,支持最多都是點差。 – LamonteCristo 2011-01-05 23:04:27