Ошибка: Failed to parse the Currency Converter XML document.
$30 689.39


Ошибка: Failed to parse the Currency Converter XML document.
$60 173.73


Ошибка: Failed to parse the Currency Converter XML document.
$2 260.85


Введение в технологию SSI

Если вы первый раз слышите о SSI — Server Side Includes, то эта статья как раз для вас. Я не претендую на подробное изложение материала — для этого есть специальная литература.

Так вот, на тему этих самых Server Side Includes (вложения на стороне сервера, они же SSI и Virtual Includes) написано уже множество статей, но вот только большинство из них подходят лишь для опытных пользователей. А вот данная статья рассчитана на новичков в этом деле. В этой статье я постараюсь вам рассказать о своем понимании SSI и показать, как она может применяться для веб-программирования. Если разберетесь и будете еще читать литературу на данную тематику, то увидите преимущество использования SSI над другими скриптовыми языками.


Что представляет собой сервер

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


Ведь не всем нужен сайт на движке (CMS'ке как еще говорят), когда уже нужно его писать на php. К примеру, если вы фрилансер, то можете просто сделать сайт с пятью страничками index.html, about-me.html, education.html, resume.html и portfolio.html — этого вам будет вполне достаточно, чтобы ваш работодатель мог узнать о вас и ваших навыках.

Серверы — не только хранилище файлов?

Пока мы рассматривали сервера просто как хранилища файлов, но этим их возможности не ограничиваются. Также, как и наши персональные компьютеры (ПК, РС, х86 - кому как по душе), на серверах тоже стоит программное обеспечение. Таким образом возможности серверов значительно возрастают. Для примера, могут собирать подробную статистику о всех посетителях вашего сайта, исполнять сценарии и скрипты, поэтому вы можете использовать не только html, но такие скриптовые языки, как php и asp. Вот мы уже и затронули вопрос «на стороне сервера» (server side), т.к. эти скрипты работают только на сервере (где, собственно и расположены), выдавая конечному пользователю (т.е посетителю вашего сайта) лишь результат своей работы.

Для чего нужны эти «includes»?

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

Предположим вполне практическую задачу — добавление нового пункта в это меню. Для этого потребуется править 5 файлов, а вот если это информационный сайт с сотнями и тысячами страниц, то тут уже временные затраты и количество выкуренных сигарет вряд ли что-то оправдает :) Вот для решения этих проблем и придумали включения кода (virtual includes).

Что же можно включить со стороны сервера?

Логично предположить, что лучше всего в код сайта включить так называемые «модули». Эти модули (или же «include») могут быть как файлами стриптов, сценариев или же простой html. Вставка же этого кода производится через специальный их вызов в том месте странички, где будет выводиться результат их работы. Т.е. если это будет навигационное меню, то и расположим команду вызова модуля в соответствующем месте. К примеру, можно отдельно создать файл меню nav-menu.html, сделать в нем пункты меню, оформление, а в сами странички, где он будет выводиться, просто вставлять не него ссылку. Таким образом при изменении меню нам придется редактировать лишь один файл nav-menu.html, а не все страницы.

Как это происходит на практике...

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

Замечу, что при просмотре исходного кода веб-старницы (когда она открылась в браузере), вы не найдете этого кода, а на его месте будет содержимое файла nav-menu.html — в данном случае это навигационное меню. Это происходит потому, что сценарий php выполняется на стороне сервера, в клиенту (т.е вам — посетителю сайта) выдается лишь результат работы этого самого сценария. Это позволяет скрыть исходный код скриптов от просмотра, ботов, поисковых машин и прочих интернет-субстанций :)

И в заключение

Без сомнения, что при содержании сайта с сотнями и тысячами страниц не обойтись без технологии SSI. Да и все системы управления контентом (CMS) тоже их используют — можете посмотреть их исходный код — как правило в каждом из php файлов содержится несколько включений кода командами include, require, а также их разновидностями — include_once и require_once (различия между ними можно найти в любой толковой книжке о PHP). Надеюсь, что статья пролила свет на SSI для тех, кто первый раз узнал или услышал об этой технологии.

 

Интересное

Реестр Windows
На смену ini-файлам, имеющим ряд концептуальных ограничений, еще в windows 3.1 было введено понятие реестра — регистрационной базы данных, хранящей различные настройки ОС и приложений. Изначально...
Подробнее...
DNS — доменная система имен
domain name system (dns), что переводится на русский язык как «доменная система имен», позволяет значительно облегчить пользователям процесс работы в Интернете тем, что им уже не нужно запоминать...
Подробнее...
Учимся работать с DelphiX
Говоря техническим языком, DirectX — набор объектов COM (Component Object Model), которые реализуют интерфейсы для облегчения работы с видеоаппаратурой, звуком, межкомпьютерными соединениями и...
Подробнее...
10 полезных приёмов при...
Если вы недостаточно хорошо освоили PowerShell, то наверняка не стремитесь применять этот инструмент в повседневной работе. Однако дананя оболочка является ядром таких систем, как Exchange 2007,...
Подробнее...
Что? Шумит компьютер?
Давным давно жили-были первые компьютеры. Они были большие и неповоротливые и очень сильно шумели и гудели. Эти первые компьютеры были очень нежные, хоть и железнокрепкие (я — Маяковский!),...
Подробнее...
GSM – шлюз: Как через...
У меня возникла необходимость по нескольку раз в день принимать и отправлять фак- сы на даче, где нет городского телефона. Слышал, что для таких целей можно каким-то образом приспособить мобильный...
Подробнее...
Удалённое восстановление...
Как импортировать большой SQL-скрипт (дамп базы данных MySQL для форума phpBB), если обычными споcобами (загрузка через web-интерфейс phpMyAdmin, Backup cPanel) проблематична, особенно на модемном...
Подробнее...
Domain Name Service -...
Служба Доменных Имен предназначена для того, чтобы машины, работающие в Internet, могли по доменному имени узнать IP-адрес нужной им машины, а также некоторую другую информацию; а по IP-номеру...
Подробнее...
Несколько советов по...
Для ускорения навигации по папкамДля ускорения навигации по папкам, содержащим графические файлы можно отметить пункт — «Не кэшировать эскизы» (Панель управления -> Свойства папки -> Вид), а...
Подробнее...
Экономичная печать
Мы хотим получить красивый отпечаток, но при этом сэкономить как можно больше чернил и бумаги. Как это сделать? Оказывается, есть способ…Сколько бы вы ни заплатили за принтер — 50 или 500...
Подробнее...