Tomcat 6上的Gzip压缩

时间:2015-04-10 07:53:41

标签: tomcat compression gzip tomcat6

之间有什么区别
  

压缩= “上”

  

压缩= “力”

Tomcat documentation说:

  

“on” - 允许压缩,这会导致文本数据被压缩

     

“force” - 强制压缩所有情况

有什么额外的案例?

而且,更重要的是,推荐哪种价值用于生产环境?

4 个答案:

答案 0 :(得分:0)

要压缩与否,请在negotiation between the server and client期间决定。

强制压缩意味着无论客户端是否支持,服务器都会发送压缩内容。

答案 1 :(得分:0)

我无法100%确定区别(我正在寻找相同的信息),但我可以肯定地说," force"根据我刚刚执行的测试(使用tomcat 8.0.8),当客户端没有发送相关的Accept-Encoding标头时,值不会压缩。此外,它没有多大意义,打破了这么多的http客户端。

我想" on"和"强迫"与其他压缩参数一起使用。例如。 "上"将使用compressableMimeType和noCompressionUserAgents,而" force"会压缩忽略这两个参数(例如,对于所有mime类型和所有用户代理)。

答案 2 :(得分:0)

实际上,“强制”仅是 客户端支持压缩的强制。

请注意,强制是在 标题检查之后的。

 /**
 * Check if the resource could be compressed, if the client supports it.
 */
private boolean isCompressible() {

    // Check if content is not already compressed
    MessageBytes contentEncodingMB = response.getMimeHeaders().getValue("Content-Encoding");

    if ((contentEncodingMB != null) &&
            (contentEncodingMB.indexOf("gzip") != -1 ||
                    contentEncodingMB.indexOf("br") != -1)) {
        return false;
    }

    // If force mode, always compress (test purposes only)
    if (compressionLevel == 2) {
        return true;
    }
    ...

Source

答案 3 :(得分:0)

我认为这是由于useCompression中的检查所致...

    /**
 * Check if compression should be used for this resource. Already checked
 * that the resource could be compressed if the client supports it.
 */
private boolean useCompression() {

    // Check if browser support gzip encoding
    MessageBytes acceptEncodingMB =
        request.getMimeHeaders().getValue("accept-encoding");

    if ((acceptEncodingMB == null)
        || (acceptEncodingMB.indexOf("gzip") == -1)) {
        return false;
    }

    // If force mode, always compress (test purposes only)
    if (compressionLevel == 2) {
        return true;
    }