stringtranslate.com

Включает серверную часть

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

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

Дизайн

Как простой язык программирования, SSI поддерживает только один тип : текст. Его поток управления довольно прост, поддерживается выбор, но циклы изначально не поддерживаются и могут быть выполнены только рекурсией с использованием include или HTTP redirect . [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] Некоторые реализации поддерживают не все из них. [6]

Директивы контроля

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

Смотрите также

Примечания

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

Ссылки

  1. ^ ab "Команды SSI". W3C . Получено 24 марта 2019 г.
  2. ^ abc "Server Side includes (SSI)". Учебник NCSA HTTPd . Архивировано из оригинала 3 марта 1997 г. Получено 24 марта 2019 г.
  3. ^ "Настройка сервера для разрешения SSI". Apache Tutorial: Introduction to Server Side includes . Apache Software Foundation . Получено 24 июня 2015 г.
  4. ^ "Server Side includes Turing machine, Jan Schejbal". Janschejbal.de . Получено 2012-12-06 .
  5. ^ "Основные директивы SSI и синтаксис". 2018-02-09 . Получено 2018-02-09 .
  6. ^ "Модуль ngx_http_ssi_module". Документация nginx . Получено 16 ноября 2021 г.
  7. ^ ab "Модуль Apache mod_include". Документация Apache HTTP Server версии 2.4 . Apache Software Foundation . Получено 2021-09-07 .
  8. ^ abc "mod_include". Apache HTTP Server . Получено 25 марта 2019 г.
  9. ^ "ngx_http_ssi_module". nginx.org . Получено 25 марта 2019 г. .

Внешние ссылки