Введение
Интерпретируемый язык скриптов на стороне сервера Server Side Includes (SSI) — это простой интерпретируемый язык скриптов на стороне сервера, используемый почти исключительно для Всемирной паутины. Он наиболее полезен для включения содержимого одного или нескольких файлов в веб-страницу на веб-сервере (см. ниже), используя директиву #include. Обычно это может быть общий фрагмент кода на сайте, такой как заголовок страницы, нижний колонтитул страницы и меню навигации. SSI также содержит управляющие директивы для условных возможностей и директивы для вызова внешних программ. Он поддерживается Apache, LiteSpeed, nginx, IIS, а также Jigsaw от W3C. Его истоки лежат в NCSA HTTPd.
Server Side Includes (SSI) is a simple interpreted server side scripting language used almost exclusively for the World Wide Web. It is most useful for including the contents of one or more files into a web page on a web server (see below), using its #include directive. This could commonly be a common piece of code throughout a site, such as a page header, a page footer and a navigation menu. SSI also contains control directives for conditional features and directives for calling external programs. It is supported by Apache, LiteSpeed, nginx, IIS as well as W3C's Jigsaw. It has its roots in 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