【问题标题】:Storing compressed data in a cookie将压缩数据存储在 cookie 中
【发布时间】:2011-05-09 00:50:15
【问题描述】:

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

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

【问题讨论】:

    标签: http encryption cookies compression session-cookies


    【解决方案1】:

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

    1. 序列化您的对象
    2. 附加哈希以防止篡改(例如 md5sum(serialized + secret))
    3. 用 gzip 压缩字符串
    4. 使用 base64 编码结果

    要获取原始数据,只需以相反的顺序应用反向函数即可。您说的只有一个 cookie,但作为第 5 步,可以将内容拆分为 2 个或多个最大大小为 4k 的 cookie(稍后再加入)。在比较结果的大小时,不要忘记考虑到序列化的字符串可能有'{'和':'等字符被urlencoded为'%7B'和'%3A',使字符串更长.

    一些可能有用的链接:

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我在服务器上使用 Java/Spring,但我想我正在寻找更通用的解决方案......如果有一个好的库也可以为我处理该解决方案,那就更好了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 2020-02-23
      • 2012-11-16
      • 1970-01-01
      • 2012-11-03
      • 2013-08-03
      相关资源
      最近更新 更多