Включения на стороне сервера (SSI)




100
Включения на стороне сервера (SSI)
Рейтинг 10 из 10. Голосов: 1355
Ваша оценка:

ключения на стороне сервера (SSI) - это простой язык сценариев на стороне сервера, используемый почти исключительно для Интернета. Как следует из названия, его основное использование - динамическое включение содержимого одного файла в другой, когда последний обслуживается веб-сервером.

SSI в основном используется для «вставки» содержимого одного или нескольких файлов в другой. Например, файл (любой типа, 

.html
.txt
и т.д.) , содержащий ежедневную цитата может быть включен в нескольких SSI-страниц с поддержкой всей веб - сайтом, размещая следующий код в нужных страницах:

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

С одним изменением 

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

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

.shtml
.stm
или 
.shtm
расширением. (Также возможно настроить веб-сервер для обработки файлов с расширением 
.html
.)

SSI наиболее подходит для простых задач автоматизации; более сложная обработка на стороне сервера часто выполняется с помощью одного из более сложных языков программирования Perl, PHP, ASP, JSP, CFML, Python и Ruby.

содержание

 [ скрыть ] 
  • Серьезность
  • Эксплойт Вероятность
  • Базовый синтаксис
  • Директивы
    • 4.1 Наиболее распространенные директивы
    • 4.2 Расширенные директивы
  • 5 на стороне клиента
  • Внешние ссылки

Строгость

Высокая

Эксплойт Вероятность

Низкий

Основной синтаксис

SSI имеет простой синтаксис: 

<!--#directive parameter=value parameter=value -->
Директивы помещаются в комментарии HTML, поэтому, если SSI не включен, пользователи не увидят директивы SSI на странице, если они не посмотрят на ее источник.

Директивы

Самые распространенные директивы

директивапараметрыОписаниепример
include файл, прямой или виртуальный Это, вероятно, наиболее используемая директива SSI, позволяющая включать содержимое одного документа в другой. Файл или виртуальные параметры определяют файл (HTML-страницу, текстовый файл, скрипт и т. Д.), Который будет включен. Параметр file определяет включаемый файл относительно пути к документу; виртуальный параметр определяет включаемый файл относительно корня документа.
<!--#include virtual="header.html"-->
exec CGI или CMD Эта директива выполняет программу, скрипт или команду оболочки на сервере. параметр cmd указывает серверную команду; параметр cgi указывает путь к скрипту CGI. PATH_INFO и QUERY_STRING текущего сценария SSI будут переданы в сценарий CGI. «include virtual» следует использовать вместо «exec cgi».
<!--#exec cgi="/cgi-bin/foo.cgi"-->

или
<!--#exec cmd="ls -l"-->
echo var Эта директива отображает содержимое указанной переменной среды HTTP. Переменные включают HTTP_USER_AGENT, LAST_MODIFIED и HTTP_ACCEPT.
<!--#echo var="REMOTE_ADDR" -->
config timefmt, sizefmt или errmsg Эта директива настраивает форматы отображения для даты, времени, размера файла и сообщения об ошибке (возвращается при сбое команды SSI).
<!--#config timefmt="%y %m %d" -->

или
<!--#config sizefmt="bytes" -->

или
<!--#config errmsg="SSI command failed!" -->
flastmod или fsize файл или виртуальный Эти директивы отображают дату последнего изменения указанного документа или размер указанного документа. Файл или виртуальные параметры определяют используемый документ. Параметр file определяет документ относительно пути к документу; виртуальный параметр определяет документ относительно корня документа.
<!--#flastmod virtual="index.html"-->

или
<!--#fsize file="script.pl"-->
printenv   Эта директива выводит список всех переменных и их значений, включая переменные среды и определяемые пользователем переменные. У него нет атрибутов.
<!--#printenv -->

Расширенные директивы

директивапараметрыОписаниепример
if expr Используется для тестов условий, которые могут определять и генерировать несколько логических страниц на одной физической странице.
<!--#if expr="${Sec_Nav}" -->

<!--#include virtual="secondary_nav.txt" -->

<!--#endif -->
elif expr Служит той же цели, что и дальнейшее создание условий в языках программирования.
<!--#if expr="${Sec_Nav}" -->

<!--#include virtual="secondary_nav.txt" -->

<!--#elif expr="${Pri_Nav}}">

<!--#include virtual="primary_nav.txt" -->

<!--#endif -->
else   Если ни одна из директив if и elif не улавливает текущее состояние, то здесь все должно произойти.
<!--#if expr="${Sec_Nav}" -->

<!--#include virtual="secondary_nav.txt" -->

<!--#else -->

<!--#include virtual="article.txt" -->

<!--#endif -->
endif   Прекращение условной конструкции. Смотрите выше, например.

Клиентская сторона включает

Включения на стороне клиента - это HTML-включения, достигаемые на стороне клиента посредством использования фреймов, IFrames, JavaScript или JavaScript с Ajax-запросами. Эти методы страдают от недостатков, отсутствующих на стороне сервера: они полагаются на поддержку клиентом своих соответствующих технологий и, в случае фреймов и фреймов, менее доступны.


Вопросы и ответы


Оставить комментарий

ответить