压缩java http客户端中的非二进制数据

时间:2010-06-15 17:42:18

标签: java http compression

我计划使用java.util.zip压缩http post数据,当它从java客户端发送到服务器时(在本例中为java servlet)。 这是减少数据负载的最佳方法吗?
我应该使用gzip作为压缩算法吗?

2 个答案:

答案 0 :(得分:1)

可能使用简单的算法可以非常轻松地压缩基于标签的数据。

对于每个唯一标记或属性名称,分配ID,将ID,商店ID和标记名称替换为单独的文件,然后压缩为zip。

然后,只需将标签ID替换为从zip解压缩后在单独文件中获得的标签名称。

(你不必使用两个文件,你可以在同一个文件中使用)

您也可以为标签或属性中的单个“单词”执行此方法。

这比压缩它需要更多的时间,但是对于具有大量重复文本的中型到大型文件,它可以节省大量要传输的数据。

我不知道'http post data'中定义了什么,但是如果只是标签,类似的算法可能会有用。

答案 1 :(得分:0)

HTTP的两个标准压缩Content-Encoding值是gzip和deflate。

我在使用Java服务器中的deflate并切换到gzip时遇到了IE 8的问题。我没有时间进一步调查,但我当时的印象是:(a)需要多于Java DeflaterOutputStream的简单输出,比如一些额外的包装,或者(b)有需要设置的选项,以确保正确的互操作性。

根据我的经验,gzip压缩文本内容非常好,我一直在使用Content-Type: gzipGZIPOutputStream对IE,FF和Chrome多年没有任何问题。