我可以使用GZIP压缩HTTP请求吗?

Kev*_*oyd 16 java http-compression java-me

我正在使用移动设备上的Java ME应用程序与Tomcat服务器通信.
我想知道我是否可以使用Gzip压缩我的请求/响应以减少通过网络发送的字节数.

ZZ *_*der 18

现代手机具有如此多的CPU功率,网络相对较慢,因此压缩非常有意义.这也很容易.

在J2ME方面,你做这样的事情(假设你使用HttpConnection),

  hc.setRequestProperty("Accept-Encoding", "gzip, deflate");
  if (hc.getResponseCode() == HttpConnection.HTTP_OK) {
      InputStream in = hc.openInputStream();
      if ("gzip".equals(hc.getEncoding())) 
         in = new GZIPInputStream(in);
  ...
Run Code Online (Sandbox Code Playgroud)

我们使用来自tinyline的GZIPInputStream,但我相信还有其他人,

http://www.tinyline.com/utils/index.html

在服务器端,它都是内置的.只需将以下属性添加到Tomcat上server.xml中的Connector即可,

<Connector 
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,application/json"
... />
Run Code Online (Sandbox Code Playgroud)

  • @Kevin,这不会压缩标题.如果要压缩标题,客户端将如何确定它们的压缩方式 - GZIP只是一种压缩方法. (4认同)
  • 只看发送绝对必要的标题. (2认同)