Серверные включения SSI (часть 1)
С точки зрения непрофессиональнала серверные включения, SSI (Server Side Includes)- это специальные заполнители в HTML-документе, которые сервер будет заменять реальными данными непосредственно перед отправкой на браузер окончательного документа. К тому времени, как документ попадает на браузер, он ничем не отличается от других страниц, как будто данные в HTML-код вставлены вручную.
SSI позволяет создавать структуры для страниц, которые будут динамически генерироваться сервером. Для web-авторов он может оказаться мощным средсвом управления разработкой сайта и повышения его эффективности. Примеры использования SSI:
* размещение неоднократно используемых элементов. Если имееется элемент, который появляется на каждой странице вашего сайта, например, сложный навигационный заголовок, вы можете разместить в исходном тексте единственную SSI-команду, которая просто будет копировать его.
* размещение одной строкой элемента, который постоянно изменяется. Например, если вы поддерживаете домашнюю страницу, на которой имеется ежедневно меняемой сообщение, используйте команду SSI (и сценарий на сервере) ля автоматического замещения сообщения.
* вывод даты и времени последнего обновления.
* размешение многочисленным пользователям предостовлять содержимое для включения его в web-страницу без предоставления им доступа к исходному HTML-коду. Например, возможность передачи еженедельных обновлений по электронной почте. Сервер может запустить сценарий, который преобразует сообщение в текстовый файл и затем командой SSI вставит его на web-страницу.
* SSI может обслуживать web-страницу, осуществляющую запрос с браузера. Даже можно обслуживать документы на базе имени домена пользователя.
Ниже приведен список основных серверных включений (SSI) и их атрибутов:
CONFIG
ERRMSG - задает по умолчанию сообщение, которое передается при обнаружении ошибки во время синтаксического анализа документа.
<!-- #config errmsg = " Error: file not found " -->
SIZEFMT - устанавливает формат, используемый при отображении размера файла. Допустимы значения - bytes или abbrev, которое округляет размер до ближайшего килобайта.
<!-- #config sizefmt = " abbrev " -->
TIMEFMT - устанавливает формат для времени и даты. Подробнее об этом я расскажу ниже.
<!-- #config timefmt = " %A, %B, %e, %Y " -->
ECHO
VAR - значением является имя переменной, которую надо напечатать.
<!-- #echo var = " DATE_GMT " -->
EXEC
CGI - указывает относительный URL-путь к сценарию CGI:
You are visitor number <!-- #exec cgi = " /cgi-bin/counter.pl " -->
CMD - задает любую команду на сервере. Переменные SSI доступны этой команде.
<!-- #exec cmd = " bin/finger $REMOTE_USER@$REMOTE_HOST " -->
FSIZE
FILE - задает месторасположение файла в виде пут, относительно каталога, в котором находится анализируемый документ.
VIRTUAL - задает путь url относительно текущего анализируемого документа. Если он не начинается со слэша (/), то считается относящимся к текущему документу.
The size of this file is <!-- #fsize file = " somefile.html " -->
FLASTMODE
FILE - задает месторасположение файла в виде пути, относительно каталога, в котором находится анализируемый документ.
VIRTUAL - задает путь url относительно текущего анализируемого документа. URL не может содержать схему или имя хоста, только путь. Если он не начинается со слэша (/), то считается относящимся к текущему документу.
This file was last modified on <!-- #flastmode virtual = " /mydocs/somefile.html " -->
INCLUDE
FILE - задает месторасположение файла в виде пути, относительно каталога, в котором находится анализируемый документ. То есть он не может содержать ../ или быть абсолютным. Предпочтение всегда следует отдавать атрибуту virtual.
VIRTUAL - задает путь url относительно анализируемого документа. URL не должен содержать схему или имя хоста. Если он не начинается со слэша (/), то считается относящимся к текущему документу.
<!-- #include virtual = " somefile.html " -->
PRINTENV
PRINTENV - используется только Apache версии 1.2 и выше. Элемент распечатывает список всех существующих переменных и их значения.
<!-- #ptintenv -->
SET
VAR - имя устанавливаемой переменной.
VALUE - значение, присваиваемое переменной.
<!-- #set var = " password " value = " mustard " -->
Рекомендуем почитать