С точки зрения непрофессиональнала серверные включения, 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 - значение, присваиваемое переменной.