如果浏览器可以显示 deflate 的 Accept-Encoding,它可以处理 .NET gzipped 响应吗?

发布于 2024-11-07 13:53:22 字数 469 浏览 0 评论 0原文

我正在这个 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。这是对的吗?

I'm looking at this method in this 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;
}

If this returns true then the response is compressed using a GZipStream. Is this right?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱你是孤单的心事 2024-11-14 13:53:22

这是两种不同的算法:

这里有一些代码:

所以,根据协议,这是不对的,就好像浏览器说“使用 deflate 给我内容”一样,你不应该将其发送回 gzipped。

Those are two different algorithms :

Some code here :

So, according to the protocol, it is not right, as if the browser says "give me the content using deflate", you shouldn't send it back gzipped.

梦里°也失望 2024-11-14 13:53:22

GZip(基于 Deflate)和 Deflate 是两种不同的算法,因此“deflate”的请求绝对不应该返回 gzip 压缩的内容。

但是,如果接受标头包含“gzip”,则只需使用 GZipStream 和用于“deflate”的 DeflateStream 即可轻松解决此问题。

两者都包含在 System.IO.Compression 中,因此您不必编写自己的 deflate 算法或使用第三方实现。

GZip (which is based on Deflate) and Deflate are two different algorithms, so a request for "deflate" should definitely not return gzipped content.

However, this should be easy to fix, by simply using a GZipStream if the accept header contains "gzip" and a DeflateStream for "deflate".

Both are included in System.IO.Compression, so it's not like you'd have to code your own deflate algorithm or use a third party implementation.

紫轩蝶泪 2024-11-14 13:53:22

通常大多数浏览器都支持 GZip 和 Deflate。它们通过在请求标头中将其指定为 Accept-Encoding:gzip, deflate 来告诉服务器。 HTTPCombiner 优先考虑 GZip。如果两种类型都存在,则优先考虑 GZip。仅当浏览器请求 Defalte 时,HttpCombiner 才会发送内容。

Typically most of the browsers understand GZip and Deflate. They tell the server by specifying it in the request header as Accept-Encoding:gzip, deflate. The HTTPCombiner gives preference to GZip. If both the types are present then GZip is given the preference. HttpCombiner will send the content only if the browser requests for Defalte only.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文