Хранение сжатых данных в куки - PullRequest
2 голосов
/ 12 ноября 2010

Как лучше всего хранить сжатые данные в cookie?Я хочу сделать это по следующим причинам:

  1. Я хочу сохранить как можно больше данных в 1 файле cookie
  2. Я хочу, чтобы производительность была максимально быстрой с точки зрения передачи данных.
  3. Я не хочу, чтобы это было настолько очевидно, что я храню именно для предотвращения несанкционированного вмешательства*

Ответы [ 2 ]

2 голосов
/ 03 декабря 2012

Я сделал это в php, но вы легко найдете функции base64 и gzip в java:

  1. Сериализуйте ваш объект
  2. Добавьте хеш, чтобы предотвратить вмешательство (например, md5sum(сериализованный + секретный))
  3. Сжать строку с помощью gzip
  4. Кодировать результат с помощью base64

Чтобы получить исходные данные, просто примените обратные функции вобратный порядок.Вы указали только один файл cookie, но можно разделить содержимое на 2 или более файлов cookie с максимальным размером 4 КБ в качестве 5-го шага (и присоединиться к ним позже).При сравнении размера результата не забудьте учесть, что в сериализованной строке могут быть символы типа «{» и «:», которые кодируются в «% 7B» и «% 3A», что делает строку более длинной.

Некоторые ссылки, которые могут быть полезны:

  • Kryo : среда быстрой сериализации для Java
  • Cookies Manager + : расширение Firefox для просмотра / редактирования файлов cookie
0 голосов
/ 12 ноября 2010

Вы не говорите, какие серверные технологии вы используете, но здесь - это метод, который сжимает куки в ASP.NET с использованием C # и библиотеки 7Zip .

...