Почему реальные серверы предпочитают, чтобы gzip выкачали кодирование?

@mrAlek ответ в Swift:

func mapView(mapView: MKMapView!, didAddAnnotationViews views: [AnyObject]!) {
    println("didAddAnnotationViews()")

    var i = -1;
    for view in views {
        i++;
        let mkView = view as! MKAnnotationView
        if view.annotation is MKUserLocation {
            continue;
        }

        // Check if current annotation is inside visible map rect, else go to next one
        let point:MKMapPoint  =  MKMapPointForCoordinate(mkView.annotation.coordinate);
        if (!MKMapRectContainsPoint(self.mapView.visibleMapRect, point)) {
            continue;
        }

        let endFrame:CGRect = mkView.frame;

        // Move annotation out of view
        mkView.frame = CGRectMake(mkView.frame.origin.x, mkView.frame.origin.y - self.view.frame.size.height, mkView.frame.size.width, mkView.frame.size.height);

        // Animate drop
        let delay = 0.03 * Double(i)
        UIView.animateWithDuration(0.5, delay: delay, options: UIViewAnimationOptions.CurveEaseIn, animations:{() in
            mkView.frame = endFrame
            // Animate squash
            }, completion:{(Bool) in
                        UIView.animateWithDuration(0.05, delay: 0.0, options: UIViewAnimationOptions.CurveEaseInOut, animations:{() in
                            mkView.transform = CGAffineTransformMakeScale(1.0, 0.6)

                        }, completion: {(Bool) in
                                UIView.animateWithDuration(0.3, delay: 0.0, options: UIViewAnimationOptions.CurveEaseInOut, animations:{() in
                                    mkView.transform = CGAffineTransformIdentity
                                    }, completion: nil)
                        })

                    })
    }
}
63
задан Community 23 May 2017 в 12:03
поделиться

6 ответов

JP, я попытался отредактировать ваш образец регулярных выражений, чтобы я мог искать дубликаты в любой строке, разделенной запятыми. Примерно так:

var valid = string.match( /(?:(?:^|, )([a-z]*))+$/ ) &&
    !string.match( /([a-z]*).+?\1/ );

К сожалению, не удалось. Со мной Сила слаба. ;)

Еще раз спасибо за вашу помощь.

(GNU zip), как описано в RFC 1952 [25]. Этот формат представляет собой кодирование Лемпеля-Зива (LZ77) с 32-битным CRC.

  • deflate Формат «zlib», определенный в RFC 1950 [31], в сочетании с механизмом сжатия «deflate», описанным в RFC 1951 [ 29].

  • Итак, подведем итог:

    • gzip - это формат файла GZIP .
    • deflate - это фактически формат данных ZLIB . (Но некоторые клиенты также принимают фактический формат данных DEFLATE для deflate .)

    См. Также этот ответ на вопрос В чем разница между " gzip "и" deflate "кодировки HTTP 1.1? :

    В чем разница между кодировками" gzip "и" deflate "HTTP 1.1?

    " gzip "- это формат gzip, а"

    74
    ответ дан 24 November 2019 в 16:24
    поделиться

    Из моего минимального тестирования видно, что большинство HTTPds либо:

    1. не поддерживают дефляцию на лету: Apache mod_deflate (сюрприз), GWS
    2. или предпочитают отправлять gzip : IIS, mod_compress

    lighttpd Итак, чтобы отправить deflate на самый популярный сервер (Apache), вы должны поддерживать предварительно закодированные файлы и использовать mod_negotiate (возможно, вам даже придется использовать карты типов, чтобы предпочесть deflate).

    I Думаю, из-за этой проблемы deflate используется редко, и поэтому ошибки более вероятно существуют в поддержке клиентского deflate, чем в поддержке gzip.

    9
    ответ дан 24 November 2019 в 16:24
    поделиться

    Насколько мне известно (отказ от ответственности: и я не эксперт здесь, как раз то, что я слышал), gzip использует тот же алгоритм, что и deflate , но в нем больше заголовков, из-за которых он имеет больший размер (по сравнению с deflate ). Однако я думаю, что deflate поддерживается меньшим количеством клиентов и прокси.

    6
    ответ дан 24 November 2019 в 16:24
    поделиться

    Мне тоже было интересно :). Я думаю, это может быть связано с совместимостью старых (возможно, древних) браузеров. Я где-то читал, что старые браузеры с большей вероятностью будут выползать из-за дефлированного содержимого, которое mod_gzipped в определенных случаях (?), Но поиск в Google привел меня к выводу, что, вероятно, лучше прекратить поиск в Google.

    1
    ответ дан 24 November 2019 в 16:24
    поделиться

    Посетите этот веб-сайт для получения дополнительной информации: http://web.archive.org/web/20120321182910/http://www.vervestudios.co/projects/compression-tests


    Deflate, согласно спецификации, на самом деле является zlib ( формат сжатия, разработанный специально для потоковой передачи контента через Интернет) ... который является оболочкой для deflate.

    Internet Explorer, однако, неправильно реализует HTTP 1.1 deflate (zlib) как raw deflate. Так что, если ваш сервер отправляет корректный HTTP 1.1 deflate (zlib) контент в IE, он задыхается.

    Я немного исследовал эту тему, и кажется безопасным ВСЕГДА отправлять raw deflate в современные браузеры ... просто убедитесь, что это на самом деле raw , а не zlib.

    Дополнительную информацию см. в этой статье> Gzip vs Deflate (zlib) снова .

    Так что я думаю что есть веская причина для продолжения отправки deflate через gzip.

    7
    ответ дан 24 November 2019 в 16:24
    поделиться

    ActionScript 3 имеет встроенную поддержку дефлейта, но для gzip необходимо использовать внешнюю библиотеку

    .
    0
    ответ дан 24 November 2019 в 16:24
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: