之间有什么区别
压缩= “上”
和
压缩= “力”
“on” - 允许压缩,这会导致文本数据被压缩
“force” - 强制压缩所有情况
有什么额外的案例?
而且,更重要的是,推荐哪种价值用于生产环境?
答案 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;
}
...
答案 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;
}