3

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

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

2 回答 2

2

我已经在 php 中完成了这项工作,但您应该很容易在 java 中找到 base64 和 gzip 函数:

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

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

一些可能有用的链接:

  • Kryo:一个快速的java序列化框架
  • Cookies Manager+ : 用于查看/编辑 cookie 的 firefox 扩展
于 2012-12-02T23:13:45.693 回答
0

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

于 2010-11-12T15:35:19.900 回答