Сжатие недвоичных данных в Java-клиенте http - PullRequest
1 голос
/ 15 июня 2010

Я планирую использовать java.util.zip для сжатия данных HTTP-поста при отправке их с клиента java на сервер (в данном случае java-сервлет).это лучший подход для снижения загрузки данных?я должен использовать GZIP в качестве сжатия ALG?

Ответы [ 2 ]

1 голос
/ 15 июня 2010

Возможно, данные на основе тегов можно довольно легко сжать с помощью простого алгоритма.

Для каждого уникального имени тега или атрибута назначьте идентификатор, замените теги идентификатором, сохраните идентификатор и имя тега в отдельном файле, а затем сожмите в zip.

Затем просто замените свои идентификаторы тегов на имена тегов, которые вы получите в отдельном файле после распаковки из zip.

(Вы не должны использовать два файла, вы можете сделать это в одном и том же файле)

Вы также можете использовать этот метод для отдельных «слов» внутри тегов или атрибутов.

Это занимает немного больше времени, чем просто архивирование, но для средних и больших файлов с большим количеством повторяющегося текста, это сохраняет приличное количество данных для передачи.

Мне неизвестно, что определено в «http post data», но если это просто теги, аналогичный алгоритм может сработать.

0 голосов
/ 15 июня 2010

Два стандартных значения Content-Encoding сжатия для HTTP - это gzip и deflate.

У меня были проблемы с IE 8 при использовании deflate с Java-сервера и я переключился на gzip. У меня не было времени на дальнейшие исследования, но в то время у меня сложилось впечатление, что (а) требуется больше, чем простой вывод Java DeflaterOutputStream, например, какая-то дополнительная обертка, или (б) были варианты, которые необходимо установить для обеспечения правильной совместимости.

По моему опыту, gzip очень хорошо сжимает текстовый контент, и я работал с Content-Type: gzip и GZIPOutputStream без проблем с IE, FF и Chrome в течение ряда лет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...