我在这个HTTPCombiner中看到这个方法:

private bool CanGZip(HttpRequest request)
{
    string acceptEncoding = request.Headers["Accept-Encoding"];
    if (!string.IsNullOrEmpty(acceptEncoding) &&
         (acceptEncoding.Contains("gzip") || acceptEncoding.Contains("deflate")))
        return true;
    return false;
}

如果返回true,则使用GZipStream压缩响应。是这样吗?

最佳答案

这是两种不同的算法:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3
http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.5
这里有些代码:
http://www.singular.co.nz/blog/archive/2008/07/06/finding-preferred-accept-encoding-header-in-csharp.aspx
所以,根据协议,这是不对的,就像浏览器说“给我使用deflate的内容”,你不应该发送回gzip。

09-25 20:25