Zanuda
Главная   Планы   Разное  
Главная »Инфосвалка

Что нового принес Эксперимент?

28 ноября 2008 г.

Следующая ступенька бесконечной лестницы. Раздача файлов – а вдруг пригодится...

Новостная лента, карта сайта, форма обратной связи. Движок стал обретать некоторую функциональность, не свойственную совсем уж примитивным игрушкам. С появлением этих дополнений на нем стало возможно сделать полноценный сайт. Без излишеств, но и без существенных недостатков. Уровень «необходимого и достаточного» был достигнут. Оставалось двигаться дальше, к излишнему.

Первым излишеством стала раздача файлов. Она срочно потребовалась для одного из сайтов, которые строились на новом движке. И сделать ее хотелось так, чтобы не было мучительно больно и стыдно за бесцельно прожитые годы... нет, стоп, это совсем из другого романа, отставить, я сказал! Сделать ее хотелось так, чтобы шальная закачка не задушила несчастный веб-сервер. Чтобы кликнув по ссылке, посетитель не попал на белоснежную страницу, на фоне которой возникает загрузочный диалог браузера. Чтобы, начиная скачивать файл, он уже видел, сколько ему придется скачать. И чтобы независимо от браузера файл по возможности скачивался, а не открывался в браузере, как будто это всего лишь текст.

Все это удалось сделать. Большая часть всех этих качеств зависела от правильно посланных заголовков (HTTP Response Headers, извините за выражение). И еще некоторую часть удалось реализовать, передав скрипту управление закачкой. Скрипт, жадный, как помесь Плюшкина и Гобсека, попросту считывает данные из файла мелкими порциями, сплевывая очередную порцию, прежде чем считать следующую. Никаких отжираний памяти, никаких открываний файла целиком. Обойдетесь, этому движку положено работать на скромном виртуальном shared хостинге. И «варезные порталы» на нем строить никто не будет. Разве что какие-нибудь скромные сайты о необычной архитектуре и дизайне интерьеров.

А чтобы хитрый U-зверь не полез к файлам напрямую, насилуя Апач, все файлы запрятаны в такое место, куда доступ по HTTP просто запрещен. Ссылка для скачивания файла указывает совсем не туда, где он лежит. А остальное – дело правильно построенного скрипта и могучего модуля mod_rewrite, который всегда позволит понимающему человеку дурачить U-зверя как ему будет угодно...

Инфосвалка

17 ноября 2008 г.
Продолжаем расширять возможности. А как насчет плагинов? Иногда это бывает очень нужно.

26 октября 2008 г.
Новость первая, надоевшая донельзя. Она постоянно с одной и той же датой.