Алгоритм сжатия, который производит безопасные данные URL - PullRequest
5 голосов
/ 29 февраля 2012

Я хочу сохранить данные cookie в компактной форме.

Существует ли такая вещь, как алгоритм сжатия, который производит безопасный вывод URL? В настоящее время мой подход

String jsonData = GSON.toJson(data);
byte[] cookieBinaryData = jsonData.getBytes("UTF-8");
byte[] cookieSnappyData = Snappy.compress(cookieBinaryData);
String cookieBase64Data = new Base64(true).encodeToString(cookieSnappyData);

Из этого cookieBase64Data хранится внутри куки. Я был бы счастлив пропустить переход Base64.

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Сколько вы экономите, делая это? Стоит ли это того?

Как насчет того, чтобы просто сохранить идентификатор в файле cookie и затем найти все данные в базе данных? Вроде как долгоживущий сеанс, но вы контролируете, какие данные храните, поэтому их не так много.

0 голосов
/ 29 февраля 2012

Нет. Сжатие часто представляет собой код без префиксов, а не кодировку. Вы можете использовать кодирование yEnc для сохранения некоторых битов. Лично я не уверен, почему yEnc обречен. Он использует расширенную 8-битную кодировку ASCII и добавляет намного меньше накладных расходов (2%) к сжатым данным: http://en.wikipedia.org/wiki/YEnc

...