Вопрос по GZIP

Тема в разделе "PHP", создана пользователем rasandrey, 29 янв 2011.

Модераторы: latteo
  1. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    Скажите, поможет ли сжатие снизить скорость работы(загрузки) портала? Какие минусы в нем есть? Какие браузеры поддерживают? И вопрос в общем: стоит ли использовать?
     
  2. gres_18

    gres_18 Pythonобандерівець®

    Регистр.:
    26 апр 2009
    Сообщения:
    407
    Симпатии:
    206
    Снизить скорость работы(загрузки) портала вряд ли выйдет, а вот повысить - скорее да, чем нет ;)

    Ответ почти однозначный - стОит
     
    rasandrey нравится это.
  3. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
  4. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    Еще появился вопрос: при просмотре свойств страницы через Firefox сжатие видно на лицо 77 - 12 кб. Но если проверять сайт через какой-то сервис "анализа сайта", то сжатие не отображается. Как вообще правильно проверить - действительно ли работает сжатие?
    Включил таким образом: в начало index.php (открытие любой страницы начинается именно с него) добавил
    PHP:
    if ( !empty( $_SERVER['HTTP_ACCEPT_ENCODING'] ) ) ob_start("ob_gzhandler");
     
  5. gres_18

    gres_18 Pythonобандерівець®

    Регистр.:
    26 апр 2009
    Сообщения:
    407
    Симпатии:
    206
    Чтобы включить gzip-сжатие нужно в php.ini сервера исправить опцию:
    Код:
    zlib.output_compression = Off
    на
    Код:
    zlib.output_compression = On
    Пробовал свой сайт этим сервисом Все правильно показывает, при том, что в коде скрипта ничего для компрессии не правил.

    UPD: на php.net такой пример приводят:
    PHP:
     <?php

    ob_start
    ("ob_gzhandler");

    ?>
    <html>
    <body>
    <p>This should be a compressed page.</p>
    </html>
    <body> 
     
  6. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    и у меня показывает 85% сжатие, что все ок.

    А если, например, проверить через этот http://www.cy-pr.com/, то не показывает, хотя если проверить другой сайт со сжатием через этот же ресурс http://uavto.dp.ua/, то показывает, что сжатие включено

    Вот и не пойму почему
     
  7. gres_18

    gres_18 Pythonобандерівець®

    Регистр.:
    26 апр 2009
    Сообщения:
    407
    Симпатии:
    206
    В общем, так. Чтобы проверить работает ли сжатие на самом деле, достаточно проверить заголовки которые шлет сервер. Можно установить дополнение для FF "Live HTTP Headers" (так по-моему называется), а там уже смотреть на предмет наличия
    Код:
    Accept-Encoding: gzip,deflate
    к серверу и
    Код:
    Content-Encoding: gzip
    в ответе от сервера браузеру.
     
  8. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    Такой заголовок получил
    Код:
    HTTP/1.1 200 OK
    Date: Sat, 29 Jan 2011 15:33:04 GMT
    Server: Apache/2.2.15 (Unix) PHP/5.2.14
    X-Powered-By: PHP/5.2.14
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Content-Encoding: gzip
    Vary: Accept-Encoding
    Content-Type: text/html; charset=windows-1251
    Set-Cookie: PHPSESSID=cba3826ed2ebbc3b94dbfc5b1fc17a2b; path=/
    Transfer-Encoding: chunked
    Т.е. этой строчки
    Код:
    Accept-Encoding: gzip,deflate
    не наблюдается
     
  9. Belial

    Belial

    Регистр.:
    1 фев 2010
    Сообщения:
    236
    Симпатии:
    113
    Строку
    Код:
    Accept-Encoding: gzip,deflate
    
    браузер должен отправлять, а в ответе от сервера должна быть
    Код:
    Content-Encoding: gzip
    
    Т.е. у тебя всё нормально.
     
    rasandrey нравится это.
  10. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    когда нет возможности редактировать файлы, ещё вариант добавить php скрипт вначале и в конце вызываемого php файлa через htaccess
    Код:
    php_value auto_prepend_file /home/_prepend_gzip.php
    php_value auto_append_file /home/_append_gzip.php
    
    _prepend_gzip.php
    PHP:
    <?php
    ob_start
    ("ob_gzhandler");
    ?>
    _append_gzip.php
    PHP:
    <?php
    ob_end_flush
    ();
    ?>
    тестирую тут, надо отметить Accept-Encoding: gzip

    http://web-sniffer.net/


    или активировать в апаче модуль mod_deflate тогда можно выбрать какие файлы сжимать, например если много html файлов

    http://httpd.apache.org/docs/2.0/mod/mod_deflate.html
     
    rasandrey нравится это.