2009-05-29 94 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,直到一个来回时共享。

相关问题