2012-03-10 52 views
0

我们将在我的系统上编写一个功能,该功能需要非常大量的用户http post和http响应,可能数百万个请求/响应(每个响应只有一些字节)发送和获取ajax和JSON)压缩和解压缩文本从html到服务器,反之亦然

但这还不够我需要找到一种方法来压缩数据与Java脚本和服务器端解压缩(.net或Java servlets),并压缩在服务器上并解压缩与JavaScript。

看起来傻傻的保存这样的字节,但我想为最坏的情况做好准备。

任何方向吗?只是张贴你的想法,让我们来分享我们的想法

感谢

埃德

+0

这个场景的用例是什么? – 2012-03-10 02:44:33

回答

1

在Java中,你可以使用java.util.zip包,它应该为您提供compress- /解压缩方法。

对于JavaScript我找到了this tutorial。 或者你可以通过替换字节流的所有Unicode字符像这样实现自己的方法:

您的消息:
AABCCC
的Unicode字节:
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

尽管目前看起来并不令人印象深刻,但可能有一个或两个请求可以从此压缩中获益。尽管算法非常有效并且足够重要。因为你正在谈论'数百万'的请求。一个大的请求可以从这个压缩中获益,但是很多小的请求可能效率很低。

对不起,我不能为您提供一个完整的解决方案,但也许这会带给你更近一点。

1

是zlib压缩的服务器级别的实现不是你的使用情况不够好?这将是获得压缩工作的最简单可靠的方法。所有最常见的Web服务器和浏览器都支持zlib压缩。

1

您可以使用支持主要Web服务器,应用程序服务器和浏览器的HTTP压缩。虽然你这样做,请注意IE浏览器在这方面历来是非常麻烦的,所以确保它可以在多个版本的IE中运行。 对于Apache,你可以使用mod_deflate。 Jetty & Tomcat拥有自己的GZIP过滤器版本。在JavaScript中压缩/解压缩将会很麻烦。我不知道JS中有任何可以帮助你的库。

1

性能问题要求您尝试和衡量以得到任何合理的答案。

在你的情况下,我会仔细看看原始消息,看看字节在哪里 - 我敢打赌,对于微小的数据包,大部分字节将在标头中,因此压缩内容将不会带来任何好处。这是您的系统 - 查看您的请求并查看可以减少数据包大小的位置。

请注意,通常您需要发送用户的身份验证请求 - 因为您的请求将具有固定的大小,通常是不可压缩的数据块。