将压缩数据存储在cookie中

时间:2010-11-12 11:49:51

标签: http encryption cookies compression session-cookies

将压缩数据存储在Cookie中的最佳方法是什么?我想这样做的原因是:

  1. 我想在1个cookie中存储尽可能多的数据
  2. 我希望在数据传输方面尽可能快地提高性能
  3. 我不希望它是如此明显我正在存储以防止轻易篡改
  4. 有许多值,希望这样做的最佳机制可以轻松检索

2 个答案:

答案 0 :(得分:2)

我在php中完成了这个,但你应该很容易在java中找到base64和gzip函数:

  1. 序列化您的对象
  2. 附加哈希以防止篡改(例如md5sum(序列化+秘密))
  3. 使用gzip
  4. 压缩字符串
  5. 使用base64编码结果
  6. 要获取原始数据,只需按相反顺序应用反向函数。您只说了一个cookie,但可以将内容拆分为2个或更多cookie,最大大小为4k作为第5步(稍后再加入)。在比较结果的大小时,不要忘记考虑序列化字符串可能具有诸如'{'和':'之类的字符,这些字符被urlencoded为'%7B'和'%3A',使字符串更长

    一些可能有用的链接:

    • Kryo:java的快速序列化框架
    • Cookies Manager+:用于查看/编辑Cookie的firefox扩展程序

答案 1 :(得分:0)

您没有说明您正在使用哪种服务器端技术,但here是一种使用C#和7Zip库压缩ASP.NET中的Cookie的方法。