[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не получается правильно отдать файл
vagrand
Есть куча html файлов, полностью статических. Хочу всех их сжать при помощи gzencode() и потом напрямую отдавать пользователю. И вот с прямой отдачей как раз и выходит затык. Прописываю в .htaccess директиву:

Header set Content-Encoding: gzip


В браузере вижу что нужный хидер мне отдается, но декодирование не происходит.

И в том же самое время, вот такой код:


$content = file_get_contents('./kreemea.shtml');
$content = gzencode($content, 9);
header('content-encoding: gzip');
echo $content;


абсолютно нормально отдает контент файла. Список хидеров для обоих способов проверял, все идентично. Может я не знаю какой-то особенности?

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
vagrand
Я так понимаю, что никто не в курсе? Жаль.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
killer8080
Возможно на сервере уже включено gzip сжатие, и происходит двойная обработка?

PS А смысл это делать на стороне PHP?
vagrand
killer8080
Цитата
Возможно на сервере уже включено gzip сжатие, и происходит двойная обработка?


Нет, не включена.

Цитата
PS А смысл это делать на стороне PHP?


Не понял вопроса.

P.S. Я разобрался в чем была проблема. Такой способ не работает именно в случае с shml, видимо какие-то замутки SSI.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
killer8080
Цитата (vagrand @ 2.02.2014 - 13:52)
Не понял вопроса.

я к тому, что вебсервер сам прекрасно справляется с задачей сжатия контента, зачем это делать вручную?
vagrand
killer8080
Цитата
я к тому, что вебсервер сам прекрасно справляется с задачей сжатия контента, зачем это делать вручную?


Я специально в начале вопроса указал, что мои html файлы статические. Вдобавок они очень редко меняются. Легче один раз, при изменении, их сжать, чем сжимать каждый раз при запросе.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
killer8080
Цитата (vagrand @ 2.02.2014 - 14:00)
Легче один раз, при изменении, их сжать, чем сжимать каждый раз при запросе.

А разве твой скрипт не делает то же самое при каждом запросе?
К тому же у mod_gzip есть опция mod_gzip_can_negotiate, которая позволяет вместо .html отдавать одноименный .html.gz предварительно сжатый. Тогда действительно будет экономия ресурсов.
http://www.lissyara.su/articles/freebsd/www/mod_gzip/
vagrand
killer8080
Цитата
А разве твой скрипт не делает то же самое при каждом запросе?


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

Цитата
К тому же у mod_gzip есть опция mod_gzip_can_negotiate


Про это не знал, но функционал получается практически идентичным, так что особого тут выигрыша нет. Затык у меня был именно с тем, что сжатый файл по прямой ссылке не удавалось правильно отдать. Как выяснилось все дело было именно в расширении shtml.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.