В Java вы можете использовать пакет java.util.zip
, который должен предоставлять вам методы сжатия / распаковки.
Для JavaScript я нашел этот урок .
Или вы можете реализовать свой собственный метод, заменив все символы Юникода в потоке байтов следующим образом:
Ваше сообщение:
AABCCC
Unicode Bytes:
0x41 0x00 0x41 0x00 0x42 0x00 0x43 0x00 0x43 0x00 0x43 0x00
сжатый, опуская 0x00:
0x41 0x41 0x42 0x43 0x43 0x43
еще больше, если опустить двойники:
2 0x41 1 0x42 3 0x43
Даже если сейчас это выглядит не очень впечатляюще, может быть один или два запроса, которые могли бы получить выгоду от этого сжатия. Хотя действительно важно, чтобы алгоритм был очень эффективным и достаточным. Поскольку вы говорите о «миллионах» запросов. Один большой запрос может принести пользу от этого сжатия, но многие небольшие запросы могут быть очень неэффективными.
Извините, я не могу предоставить вам полное решение, но, может быть, это немного приблизит вас.