Номер телефона

Последнее обновление:

Общее описание технологии SSI

Введение

SSI - это Server Side Includes (технология динамической сборки сайта из его отдельных частей)

  • Что это такое
  • Настройка сервера

Страницы сайта, собранного по технологии SSI, загружаются в несколько раз быстрее, чем страницы сайта, созданного на базе той или иной динамической технологии или языка программирования (PHP, node.js, Python и т.д.). Однако, у SSI есть ограничение: составные части вебстраницы, из которых затем будет произведена сборка в единое целое, практически (за редким исключением) НЕ подвергаются и не могут подвергаться динамическим изменениям. Если же все-таки такие изменения необходимы, то придется вначале их осуществить при помощи того или иного языка программирования, а уже потом применить сборку по SSI. Правда, в таком случае уже смысла в этой технологии немного. А вот когда составные части сайта (например, шапка, футер, меню и т.д.) изменяются редко или вообще не меняются - вот тогда технология SSI окажет неоценимую услугу. Подробнее прочитать о SSI Вы можете в мануале.

Проще говоря, SSI наиболее целесообразна для применения на таких сайтах, которые являются статико-динамическими. Это сайты, которые содержат некие шаблоны (макеты) вебстраниц, причем составные части, которые используются для наполнения этих шаблонов, изменяются сервером достаточно редко. Впрочем, они могут изменяться, например, при помощи javascript (на стороне клиента). Однако, это потребует соответствующей архитектуры сайта, когда вначале загружается общий макет вебстраницы, основные ее JS-скрипты и иные ресурсы; а уже потом он "уточняется" посредством AJAX-запросов.

Сайт на технологии SSI может быть актуален и в том случае, когда есть желание немного сэкономить на стоимости хостинга, но при этом чтобы сайт собирался динамически, т.е. из составных, заранее заготовленных, частей. Как правило, услуги хостинга с SSI, но без других языков программирования (типа PHP, Python) стоят дешевле, иногда - даже гораздо дешевле. По той простой причине, что такие сайты существенно меньше нагружают сервер. При этом понятно, что вся "динамика" таких сайтов будет заключаться именно в динамической сборке. Тогда как, например, реализация системы комментирование на сайте (в том числе, и сторонней), загрузка рисунков на сайт и т.д. будет невыполнимой задачей.

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

Итак, что же это такое - технология SSI

На самом деле, в отношении технологии SSI всё не так просто. Практически, сколько серверов, столько и разных нюансов в настройках. Чтобы разобраться во всём этом, нужно быть администратором сервера, иметь доступ к его настройкам и уметь этими настройками пользоваться. Впрочем, если сайт расположен на хостинге с отзывчивой службой поддержки - то особой проблемы с настройками сервера, как правило, нет.

Обилие компактных руководств в интернете для "простых пользователей", не спасает, а порой добавляет ещё больше неясности в силу недосказанности, равно как и грубых ошибок в примерах кода. А ряд вещей вообще толком нигде не описан.

Конечно, вроде как, есть мануалы, где более-менее описываются особенности применения технологиии SSI. Однако, во-первых, для начинающего разработчика эти мануалы все-таки несколько сложноваты. Во-вторых, даже и там кое-какие вещи изложены слишком уж компактно, поэтому что-то иной раз приходится додумывать уже самостоятельно.

По крайней мере, здесь вы найдёте практически исчерпывающий набор директив, атрибутов, операторов.

Описаны и переменные окружения (о полном наборе говорить не приходится, т.к. на каждом сервере он свой).

Кое-что расказывается о регулярных выражениях применительно к технологии SSI.

В отличие от подавляющего большинства "руководств" в интернете, данное руководство - это означает отсутствие недосказанностей.

Кое-что о терминологии. В разных справочниках используются как синонимы понятия «директива», «инструкция» и «функция».

Здесь использованы термины «директива» и «инструкция», которые не совсем синонимы. В конструкции вроде <!--#include file = "index.html" --> под директивой понимается ключевое слово, начинающееся со знака # (в данном примере — #include), а под инструкцией — всё выражение, находящееся между тэгами <!-- и —-> или комплекс директива-атрибут (в данном случае — #include file).

ЧТО ЭТО ТАКОЕ - более подробно

Итак, SSI (эс-эс-ай, Server Side Includes — включения на стороне сервера) — небольшой язык для сборки web-страницы «на лету» из составных частей, находящихся на сервере. В какой-то мере можно считать его альтернативой технологии фреймов, лишённой её печально известных недостатков.

Кроме фреймов, мы знаем и другие различные включения. Например, <link rel="stylesheet" href="файл.css" type="text/css"> или <script src="файл.js" type="text/javascript"></script>. Но все они выполняются браузером пользователя, и в исходном коде страницы мы видим ссылающиеся тэги. Включения же SSI происходят на самом сервере, и, просматривая в браузере исходный код, мы видим просто сплошной HTML-код страницы, как будто она и не собрана из лоскутков.

Кроме загрузки кусков HTML-кода, SSI делает и кое-что ещё, о чём мы скоро узнаем.

Существует две модификации SSI: XSSI (eXtended SSI) и SSI+. Внятных спецификаций этих стандартов нет. Здесь будет идти речь о XSSI.

НАСТРОЙКА СЕРВЕРА

Чтобы эта технология заработала, нужно указать нужные настройки в файле .htaccess, который должен находиться в корневой папке вашего сервера. Обычно по умолчанию какие-то настройки уже есть, например:

AddType text/html .txt
AddHandler server-parsed .shtml
Options +Includes

Рассмотрим по очереди.

AddType text/html .txt

Это означает, что куски кода, добавляемые в основной документ, должны быть сохранены в файлах с расширением .txt.

AddHandler server-parsed .shtml

Эта настройка сообщает о том, что расширение основного документа должно быть .shtml, иначе SSI не заработает.

Можно сделать и другие, более широкие настройки, указав несколько расширений через запятые, например:

AddType text/html .html, .htm, .txt
AddHandler server-parsed .html, .htm, .shtml

То есть теперь в файл с обычным расширением .html или .htm можно вставить куски кода, написанные в файлах .html, .htm или .txt.

ПРИМЕЧАНИЕ 1

Все файлы с расширениями, указанными в настройках .htaccess, сервер будет проверять на наличие включений. Это может несколько замедлить их загрузку. Поэтому, если файлов на сайте много, а файлов с использованием SSI — мало, то есть смысл оставить минимальные настройки, чтобы сервер не проверял лишние файлы.

ПРИМЕЧАНИЕ 2

Включаемые файлы .html и .txt иногда работают немного по-разному.

И последняя строка:

Options +Includes

Она запускает заданные выше настройки.

Возможна и другая запускающая строка:

Options +ExecCGI

Это запустит не только вставки SSI, но и другие серверные скрипты, написанные на языках PHP, Perl и т.п.

Если вы опасаетесь что-то испортить в настройках файла .htaccess, данных по умолчанию, то не стирайте и не исправляйте их, а предварите знаком #, что превратит их в комментарии, а затем напишите свои:

#AddType text/html .txt
#AddHandler server-parsed .shtml
#Options +ExecCGI
AddType text/html .html, .htm, .txt
AddHandler server-parsed .html, .htm, .shtml
Options +Includes

Если решили поэкспериментировать и безнадёжно запутались — сотрите своё «творчество» и раскомментируйте настройки по умолчанию.

Если страница с включением SSI не отобразит этой вставки, значит, настройки не запустились. Или же на Вашем хостинге просто-напросто не подключена технология SSI. Например, бывают услуги хостинга с экономными тарифами, где никакой динамики, в том числе и SSI, вообще не предусмотрено.

Если вместо включённого фрагмента на странице появится сообщение

[an error occurred while processing this directive]

(то есть «ошибка при выполнении директивы»), это означает, что запуск произошёл, но либо настройки недостаточны, либо есть ошибка в коде директивы SSI.


Комментарии:
Всего комментариев:0
Пожалуйста, не забудьте ознакомиться с правилами оставления комментариев.



Подписаться на комментарии на этой странице

Мы можем выполнить

Другие услуги
Интересная и полезная
информация
НАПИШИТЕ НАМ
Яндекс.Метрика
Номер телефона
© Copyright Все права защищены 2013-2022 Научный консалтинг