Подтвердить что ты не робот

В чем преимущество сжатия GZIP и DEFLATE?

У меня есть веб-сайт в asp.NET 4 (С#).

Я пытаюсь найти способ лучше оптимизировать пропускную способность для моего сайта.

Я прочитал много статей, в которых говорится, что DEFLATE быстрее и меньше, чем GZIP, потому что GZIP (на основе DEFLATE) добавляет некоторые дополнительные данные.

Проверяя заголовки bing.com и google.com, кажется, что они оба отправляют GZIP-кодированные данные.

Предполагая, что я прочитал, правда, я пропускаю преимущество GZIP в этом случае. Поэтому я подозреваю, что должна быть веская причина предпочесть GZIP DEFLATE.

Мои вопросы:

  • Предоставляет ли GZIP какое-либо преимущество перед DEFLATE, о котором я не знаю?
  • Любая подсказка, почему основные поисковые системы используют GZIP?

Вот код, который я использую для отправки DEFLATE (из Global.asax):

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");
        }
    }
4b9b3361

Ответ 1

Gzip более надежный, потому что он сбрасывается, плюс несколько заголовков и контрольная сумма. Другими словами, gzip дефлируется, а также дополнительные заголовки и контрольная сумма. Deflate проверяется с помощью adler32, который также является частью gzip. Поскольку полезная нагрузка gzip представляет собой сжатую полезную нагрузку DEFLATE.

Дефляция информации

Информация Gzip

файл/поток gzip содержит:

- a 10-byte header, containing a magic number, a version number and a time stamp
- optional extra headers, such as the original file name,
- a body, containing a DEFLATE-compressed payload
- an 8-byte footer, containing a CRC-32 checksum and the length of the original uncompressed data