首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >与放气压缩相比,GZIP的优势是什么?

与放气压缩相比,GZIP的优势是什么?
EN

Stack Overflow用户
提问于 2011-08-30 21:13:27
回答 1查看 24.5K关注 0票数 43

我有一个asp.NET 4 (C#)的网站。

我正在试图找到一种更好地优化我的网站带宽的方法。

我看过很多文章说DEFLATE比GZIP更快更小,因为GZIP (基于DEFLATE)增加了一些额外的数据。

检查bing.com和google.com的报头,它们似乎都发送了GZIP编码的数据。

假设我读到的是真的,我错过了GZIP在这种情况下的优势。因此,我怀疑应该有一个很好的理由更倾向于GZIP而不是通货紧缩。

我的问题:

我不知道GZIP有没有比

  • 更好的优势?
  • 为什么主要的搜索引擎都使用GZIP?

下面是我用来发送DEFLATE的代码(来自Global.asax):

代码语言:javascript
复制
protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)
    {

        HttpApplication app = sender as HttpApplication;
        string acceptEncoding = app.Request.Headers["Accept-Encoding"];
        Stream prevUncompressedStream = app.Response.Filter;

        if (!(app.Context.CurrentHandler is Page ||
            app.Context.CurrentHandler.GetType().Name == "SyncSessionlessHandler") ||
            app.Request["HTTP_X_MICROSOFTAJAX"] != null)
            return;

        if (acceptEncoding == null || acceptEncoding.Length == 0)
            return;

        acceptEncoding = acceptEncoding.ToLower();

        if (acceptEncoding.Contains("deflate") || acceptEncoding == "*")
        {
            // defalte
            app.Response.Filter = new DeflateStream(prevUncompressedStream,
                CompressionMode.Compress);
            app.Response.AppendHeader("Content-Encoding", "deflate");
        }
        else if (acceptEncoding.Contains("gzip"))
        {
            // gzip
            app.Response.Filter = new GZipStream(prevUncompressedStream,
                CompressionMode.Compress);
            app.Response.AppendHeader("Content-Encoding", "gzip");
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-30 21:26:40

Gzip更可靠,因为它是deflate加上几个头和一个校验和。换句话说,gzip是deflate,以及额外的头部和校验和。Deflate是用adler32检查的,它也是gzip的一部分。因为gzip有效负载是压缩后的有效负载。

Deflate info

Gzip info

一个gzip文件/流包含:

  • 一个10字节的标题,包含一个幻数,一个版本号和一个时间戳-可选的额外标题,如原始文件名,-一个正文,包含一个压缩的有效载荷-一个8字节的页脚,包含一个CRC-32校验和和原始未压缩的gzip文件的长度。
票数 46
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7243705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档