2

AWS EC2 を介して Linux サーバーにインストールされた Tomcat 6.0 を構成して、大きな JSON オブジェクト応答 (最大 54k サイズ) を圧縮しましたが、何らかの理由で圧縮していません。

/usr/share/tomcat6/conf/server.xml でのコネクタ定義 -

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000" compression="force"
               compressableMimeType="text/html,text/xml,text/plain,application/javascript,application/json,text/javascript,text/json"
               redirectPort="8443" />

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
           maxThreads="200" scheme="https" secure="true" compression="force"
           compressableMimeType="text/html,text/xml,text/plain,application/javascript,application/json,text/javascript,text/json" 
           keystoreFile="/usr/share/tomcat6/conf/my.keystore" keystorePass="password"
           clientAuth="false" sslProtocol="TLS" />

ヘッダーをリクエストし、gzip を受け入れます -

POST /mycommand HTTP/1.1
Host: my.host.com
Proxy-Connection: close
Accept-Encoding: gzip
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 431

コネクタで構成された MIME を含む応答ヘッダー -

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=UTF-8
Vary: Accept-Encoding
Date: Mon, 27 Aug 2012 20:19:05 GMT
Connection: close
Content-Length: 55565

私は試しましたcompressed="2048"、同じ問題。

サーバーでの私のコマンドメソッドは、Spring MVC と jackson JAR を使用して JSON 応答を作成しています -

@RequestMapping(method=RequestMethod.POST, value="/mycommand")
public @ResponseBody BasicResponse doCommand( 
    ...
}

何か案が?

4

1 に答える 1

2

わかりました、それは迷惑です...

すべての通信を監視するために私が使用しているプロキシである Burp Suite がunpack gzip / deflateチェックしたことがわかりました。

圧縮された応答を受け取るには、一番下までスクロールしてチェックを外す必要があります。

削除すると、すべて正常に動作します。

于 2012-08-28T15:53:21.233 に答える