2009-05-29 114 views
1

我打算在兩個瀏覽器窗口之間使用cookie進行通信。我想知道是否有任何我無法想到的缺點。數據在服務器端不是必需的,因此通過Cookie進行通信應該足夠用於此目的。我是否錯過了一些東西,或者這很好用嗎?使用Cookie進行瀏覽器通信

我知道限制是4K。大概多少文字4k?說我想存儲MD5/SHA字符串。我可以在一個cookie中存儲多少個這樣的md5字符串?

非常感謝您的時間。

回答

5
  • 最明顯的一個是用戶可能在他們的瀏覽器禁用餅乾...
  • 是多少文字的4K?關於這一點(Lipsum Generator提供):

Lorem ipsum dolor sit amet,consectetur adipiscing elit。 Duis quam quam,bibendum坐amet egestas id,suscipit vel mi。 Integer est lacus,blandit vel accumsan non,lobortis eget purus。 Nunc non felis nec justo ullamcorper suscipit。 Vestibulum dapibus lobortis semper。 Quisque mollis,lectus non porta semper,quam sapien adipiscing erat,in tincidunt risus lacus et felis。 Vivamus pellentesque,varius cursus的massa,lorem tortor vehicula velit,et commodo neque sapien eget felis。 Morbi iaculis condimentum lorem nec iaculis。 Vivamus sem ligula,vestibulum id tempus scelerisque,aliquam non velit。 Integer ac sapien lorem,sed egestas ligula。 Nam tristique tortor id odio imperdiet fermentum sed sit amet nisl。 aliquam in tortor ligula,dignissim iaculis libero。在convallis nisi中進行賭注。

Curabitur accumsan condimentum turpis,tincidunt fringilla nibh hendrerit vitae。 Aliquam ac arcu nibh,eget viverra dui。 Sed se nisi nibh,ut interdum orci。 Suspendisse laoreet sollicitudin libero ac fermentum。 Curabitur ultrices enim坐amet massa mollis in dapibus libero iaculis。在enim elit,mattis eget vestibulum at,faucibus at felis。 Sed ultrices posuere libero,id consectetur nibh lacinia vel。 Maecenas non mi eu dui sodales commodo et mi。 Aliquam erat volutpat。 Vestibulum interdum,lectus eget cursus elementum,ligula metus iaculis libero,ac accumsan sapien eros vitae eros。 Quisque vulputate massa quis可以增加脂肪分解酶的活性。 Donec tristique purus nec erat tristique hendrerit。整數值可以增加ornare tempus varius eros imperdiet。 Quisque venenatis condimentum nisi,facilisis elementum lorem molestie eu。 Donec id elit nec arcu tincidunt consectetur id sit amet velit。 Nulla ut purus sapien。

Praesent a tortor magna。 Lorem ipsum dolor坐在amet,consectetur adipiscing elit。南非tincidunt mauris。 Morbi euismod sollicitudin ipsum in euismod。暫停的潛力。 Ut sempre,risus viverra porta sempre,urna nisi placerat erat,在luctus ante mi in velit。 Sed ac贊同purus。 Curabitur坐在amet lacinia elit。 Sed acros elit。在hac cubasse platea中最明顯。在多爾維多拉非言語對話中的feugiat ipsum。 Duis quis urna mi。 Mauris non tellus non augue pretium commodo vitae adipiscing nulla。 Donec aliquet libero sit amet ipsum pharetra non fermentum sapien euismod。 Quisque commodo erat velisis tristique placerat。 Morbi eros urna,dignissim pulvinar ullamcorper sed,convallis at risus。斜紋夜蛾。 Etiam eu aliquet odio。整數dique neque,tincidunt ac semper quis,gravida eget eros。 Praesent augue orci,sagittis vitae semper ut,accumsan in turpis。

Nam ac erat sit amet metus conac ulraccorper at ac quam。 Sed auctor fringilla ligula,vitae iaculis mauris tempus et。 Etiam pulvinar,odio non egestas mollis,odio ligula elementum dolor,non auctor nulla leo sit amet orci。 Aenean leo urna,將id id tristique帶入,並在augue中繼承。 Morbi vel condimentum dui。 Curabitur eu augue felis,sed luctus nisi。 Pellentesque eu tortor non erat placerat iaculis nec nec tortor。 Maecenas ultrices tristique lectus et fermentum。 Duis et faucibus diam。 Vivamus簡歷nibh neque。但質量仇恨,生態ultricies不拉了鍋。巴基斯坦NIBH目前集家庭作業排球裙子。規劃聚光燈,化學有毒的宣傳熱之一。現場免費宣傳,電視和醬油,現在的價格。

的第一個籃球之前設置它們的顎的悲痛和臨牀護理;營養居民足球傷心又老又醜netus等malesuada飢餓和貧困。 Lorem存有悲坐阿梅德,consectetur adipiscing ELIT。各種臨牀時間直播員。智能手機。然而,營養性能和開發商誰畢業的車輛。坐在溫暖的大鍋裏,歐盟製造一組的笑聲。然而,排球,足球池任何筆記本電腦,恨它接收恨任何打算電弧性能質量。前庭預期值,也NEC VEL LEO tincidunt sollicitudin。每個也不得不從軟的擔憂坐蛋白。即使高中功課。

+0

+1。文本的4K說比「文本的4K」更多。 ;-) – Boldewyn 2011-02-11 14:41:57

3

4K是4096個字節。 4096所以你可以存儲一個字節字符(ASCII)。

但是當你想存儲的哈希值,你應該更好地使用原始散列值的Base64編碼值。因此,你可以存儲6位字符,而不是每個字符只有4位,如果你使用的十六進制值。存儲爲名稱/值對每個MD5將是至少36個字符

+1

Base64的每個字符使用(64值)6個可用比特。 4每個字符使用十六進制可用位(16個值)。 – dave4420 2009-05-29 15:51:21

2

(假設它被存儲爲一個十六進制字符串與單個字符的名稱,MD5 +名稱+「=」 +隔板= 32 + 2 + 1 + 1) ,只要你會使用有意義的名稱是好的,...在36個字符你能適應117 4K(4096個字符,整個假設的ASCII字符),但一定要留有餘地,開銷就像從你的服務器這個會話Cookie -sidi腳本環境和這樣的。

SHA1會更長(160位,而不是128)和SHA2仍然較長(224和512取決於確切位變體之間使用)。使用Base64編碼或類似而不是純六角將減小尺寸(MD5 22個字符,假設代替32沒有填充)。

至於陷阱去使用cookie以這種方式,主要的將是一些用戶的cookie完全關閉(甚至第一方會話cookie),儘管這取決於你的目標受衆,這可能不是一個問題。

您還需要確保你在你的用戶很可能使用的所有瀏覽器測試,確保在一個窗口一個更新的cookie通過腳本事實上確實更新到其他窗口腳本可用的數據,而不客戶機/服務器往返。

你也需要訓練Internet Explorer用戶知道開始使用Ctrl-N或您的鏈接一個新的IE窗口,並從開始菜單中啓動IE啓動一個新流程之間的差異。在後一種情況下,餅乾幾乎肯定無法與其他Windows,直到一個來回時共享。