Введение

Интерпретируемый язык скриптов на стороне сервера Server Side Includes (SSI) — это простой интерпретируемый язык скриптов на стороне сервера, используемый почти исключительно для Всемирной паутины. Он наиболее полезен для включения содержимого одного или нескольких файлов в веб-страницу на веб-сервере (см. ниже), используя директиву #include. Обычно это может быть общий фрагмент кода на сайте, такой как заголовок страницы, нижний колонтитул страницы и меню навигации. SSI также содержит управляющие директивы для условных возможностей и директивы для вызова внешних программ. Он поддерживается Apache, LiteSpeed, nginx, IIS, а также Jigsaw от W3C. Его истоки лежат в NCSA HTTPd.

Дизайн

Являясь простым языком программирования, SSI поддерживает только один тип данных: текст. Его управление потоком довольно простое, поддерживаются условные операторы, но циклы не поддерживаются нативно и могут быть реализованы только с помощью рекурсии, используя включения или HTTP-редиректы. Простой дизайн языка облегчает его изучение и использование по сравнению с большинством серверных скриптовых языков, в то время как сложная серверная обработка часто выполняется с использованием одного из более функциональных языков программирования. SSI является Тьюринг-полным. Синтаксис SSI прост: <! #директива параметр=значение параметр=значение >. Директивы размещаются в HTML-комментариях, поэтому, если SSI не включен, пользователи не увидят директивы SSI на странице, если не просмотрят её исходный код. Обратите внимание, что синтаксис не допускает пробелов между начальным "<!" и директивой. В руководстве Apache по SSI указано, что формат требует пробела перед символом ">", закрывающим элемент.

Общие

Ниже приведены директивы SSI, использовавшиеся в NCSA HTTPd (1990-е годы). Некоторые реализации могут не поддерживать все из них. +NCSA HTTPd SSI директивы Директива Параметры Описание Пример include файл или виртуальный Это, вероятно, наиболее часто используемая директива SSI. Она позволяет вставлять содержимое одного документа в другой. Вставляемый документ сам может быть файлом с поддержкой SSI. Параметры "файл" или "виртуальный" указывают файл (HTML-страницу, текстовый файл, скрипт и т. д.), который нужно вставить. NCSA HTTPd не поддерживал CGI через include. Если у процесса нет прав на чтение файла или выполнение скрипта, вставка завершится неудачно. Параметр "virtual" интерпретирует пути к каталогам как часть URL, а параметр "file" – как пути в базовой файловой системе. При использовании "file" запрещено указывать абсолютные пути или "/" для доступа к родительскому каталогу. В документации Apache рекомендуется использовать "virtual" вместо "file". Nginx printenv Эта директива выводит список всех переменных SSI и их значений, включая переменные окружения и определяемые пользователем. Она не имеет атрибутов. <nowiki><! #printenv ></nowiki> Apache