Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Для того , чтобы веб - сервер , чтобы распознать SSI с поддержкой HTML - файл и , следовательно , выполнять эти инструкции, либо имя файла должно заканчиваться специальным расширением , по умолчанию .shtml, .stm, .shtmили, если сервер настроен для этого установите исполнение бит файла. [3]

Дизайн [ править ]

Как простой язык программирования SSI поддерживает только один тип : текст. Его поток управления довольно прост, поддерживается выбор, но циклы изначально не поддерживаются и могут быть выполнены только путем рекурсии с использованием включения или с использованием перенаправления HTTP . [a] Простой дизайн языка упрощает его изучение и использование, чем большинство языков сценариев на стороне сервера, в то время как сложная обработка на стороне сервера часто выполняется с помощью одного из языков программирования с более широким набором функций . SSI завершен по Тьюрингу . [4]

SSI имеет простой синтаксис: <!--#directive parameter=value parameter=value -->. Директивы помещаются в комментарии HTML, поэтому, если SSI не включен, пользователи не увидят директивы SSI на странице, если они не посмотрят на его источник. Обратите внимание, что синтаксис не допускает пробелов между ведущим «<» и директивой. В руководстве Apache по SSI указывается, что формат требует наличия пробела перед знаком «->», который закрывает элемент. [5]

Примеры [ править ]

Веб-страница, содержащая ежедневную цитату, может включать цитату, поместив следующий код в файл веб-страницы:

<! - # include virtual = "../ quote.txt" ->

После одного изменения quote.txtфайла на всех страницах, содержащих файл, будет отображаться последнее ежедневное предложение. Включение не ограничивается файлами, а также может быть текстовым выводом программы или значением системной переменной, например, текущим временем.

Директивы [ править ]

Общие [ править ]

Ниже приведены директивы SSI времен NCSA HTTPd (1990-е годы). Они поддерживаются всеми реализациями. [2]

Директивы управления [ править ]

Директивы управления позже добавляются в SSI. Они включают в себя повсеместное управление потоком if-elif-else-endif и запись переменных, а также более экзотические функции, такие как циклы, которые встречаются только в некоторых реализациях.

См. Также [ править ]

  • ESI (включая боковую сторону)

Заметки [ править ]

  1. ^ Тем не менее встречается в некоторых реализациях, включая Jigsaw.

Ссылки [ править ]

  1. ^ a b «Команды SSI» . W3C . Проверено 24 марта 2019 года .
  2. ^ a b «Включения на стороне сервера (SSI)» . NCSA HTTPd Tutorial . Архивировано из оригинала 3 марта 1997 года . Проверено 24 марта 2019 года .
  3. ^ «Настройка вашего сервера для разрешения SSI» . Учебное пособие по Apache: Введение в серверные компоненты . Фонд программного обеспечения Apache . Проверено 24 июня 2015 года .
  4. ^ «Серверная сторона включает машину Тьюринга, Ян Шейбал» . Janschejbal.de . Проверено 6 декабря 2012 .
  5. ^ «Основные директивы и синтаксис SSI» . 2018-02-09 . Проверено 9 февраля 2018 .
  6. ^ a b c "mod_include" . HTTP-сервер Apache . Проверено 25 марта 2019 .
  7. ^ "ngx_http_ssi_module" . nginx.org . Проверено 25 марта 2019 .

Внешние ссылки [ править ]

  • Ссылка на язык из реализаций:
    • Apache: Справочник по Apache mod_include . Вызывает директивы «элементы».
    • Nginx: модуль ngx_http_ssi_module . Вызывает директивы «команды».
    • NCSA HTTPd : исходный справочник по SSI NCSA HTTPd . Вызывает директивы «команды».
    • W3C Jigsaw: Команды включения на стороне сервера . Вызывает директивы «элементы». Сильно расширен сервлетами , JDBC , HTTP cookie и циклами.
  • Учебники:
    • Учебное пособие по Apache SSI
    • Справочник по SSI на простом английском языке
    • SSI-Developer, серверная часть Apache включает