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