Red World
SSI: вкусно и полезно

В этой статье я расскажу о технологии Server Side Include (SSI). Вещь эта в WWW-дизайне чрезвычайно нужная и полезная, так как во много раз облегчает работу по созданию и поддержке Web-сайта.

Server Side Include с английского переводится как "включаемый на стороне сервера". Звучит страшновато, но на самом деле все просто: эта технология позволяет Web-серверу включать в текст ваших HTML-страниц любой другой текст: содержимое текстовых файлов или, например, результат работы CGI-скриптов (который, как известно, обычно оформляется в виде HTML-текста). Происходит это "включение" непосредственно перед передачей текста HTML-страницы броузеру пользователя, так что посетитель страницы даже не догадывается об этой серверной "возне".

Какова же польза от SSI? Польза огромна. Предположим, на каждой странице своего сайта вы поместили список доступных разделов сайта. Творение ваше, как и положено, постоянно развивается, и вот вы решили добавить еще один раздел. Что же теперь, открывать все страницы в редакторе и тупо добавлять в текст одно и то же? Советский пионер (любящий трудности) поступил бы именно так, а умный Web-дизайнер станет использовать SSI. Для этого достаточно создать отдельный текстовый файл (например, sections.html) и занести туда HTML-код списка разделов. Непосредственно же в страницы сайта, в том месте, где должен находиться список разделов, нужно вставить следующую инструкцию:

<!--#include virtual="sections.html"-->

Обратие внимание на то, что нужно дословно следовать синтаксису директив SSI. Забудете, например, поставить два тире в конце директивы - и сервер ей буквально "подавится", прекратив анализ страницы.

Когда кто-либо захочет просмотреть эту страницу, сервер заменит инструкцию <#include> содержимым файла sections.html. Если вы измените файл sections.html, то все страницы, где вы использовали<#include>, обновятся автоматически. Обратите внимание: в HTML-файлах, лежащих на диске Web-сервера, ничего не меняется - сервер производит вставку текста "на лету", перед тем, как отправить WWW-страницу в броузер посетителя.

Вместо имени обычного текстового файла в инструкции <#include> можно указывать имя CGI-скрипта. В этом случае сервер сначала выполнит CGI-скрипт, а потом вставит результат работы скрипта в текст WWW-страницы. Это означает, что вы сможете реализовать такие вещи как, например, текстовый счетчик посещений или отображение на странице случайно выбранной фразы.

На одной из страниц сервера Design.Ru было написано: "Мы смотрим на тип броузера и выдаем разный HTML-код. Ради эксперимента - зайдите на сайт CMA (или Xerox) Explorer'ом и Netscape'ом. И посмотрите в исходный код и там и там." Догадываетесь, как они это делают?

Есть еще одно косвенное преимущество применения SSI: из-за использования шаблонов типа вышеупомянутого sections.html WWW-страницы будут меньшими по объему, и вы сможете сэкономить немало времени, перписывая файлы на Web-сервер по FTP.

Но не все так прекрасно. Например, вам не удастся поэксперементировать с механизмом SSI на машине, на которой не установлен Web-сервер. Функционирование SSI обеспечивается именно сервером, поэтому при просмотре HTML-файлов с локального жесткого диска (например, С:), ваш броузер проигнорирует директивы SSI - ведь они, с точки зрения HTML, являются обычными комментариями.

Кроме того, сервер должен быть настроен для поддержки SSI. И попадаются такие алчные провайдеры, которые начинают требовать деньги за такую настройку. Лучше всего не пользоваться их услугами, так как поддержка SSI включается добавлением пары строк в файлы конфигурации Web-сервера Apache и еще кое-какими нехитрыми действиями администратора, за что брать деньги, на мой взгляд, грешно.

К счастью, таких провайдеров не очень много. Большинство предлагают поддержку SSI по умолчанию. Но учтите, что на бесплатных серверах, таких, как Хоом, Tripod, Geocities, Chat.ru SSI не разрешается. Тут уж ничего поделать нельзя :-(

Кстати о настройках сервера. При включении поддержки SSI сервер начинает просматривать все страницы на предмет наличия в них директив SSI, что увеличивает нагрузку на сервер. Поэтому очень часто системные администраторы включают SSI только для файлов с определенным расширением - обычно .shtml. Так что если в файлах .html SSI не работает, попробуйте переименовать их в .shtml, а лучше спросите об этом системного администратора :-)

В общем, SSI - действительно полезный инструмент, игнорировать который, если вам дорого свое время (и деньги), не стоит.




Сайт создан в системе uCoz