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


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


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


Введение в технологию 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 XP
1. Стратегия безопасности Windows XP Модель безопасности Windows XP Professional основана на понятиях аутентификации и авторизации. При аутентификации проверяются идентификационные данные...
Подробнее...
Как выбрать телефон
На сегодняшний день на рынке имеется неограниченное число видов моделей мобильных телефонов, от самых простых, до моделей, имеющих бесчисленное количество функций, и возможностей деловым людям.
Подробнее...
"Грабим" странички
С аудиограбберами знакомы все. Нам предстоит сделать свой собственный граббер информации из Интернета. Нам понадобится подопытный кролик, на роль которого я предлагаю выбрать сайт...
Подробнее...
Протокол SOCKS 5
Этот документ описывает протокол связи по стандартам Интернет, и открытдля обсуждения и предложений. Пожалуйста обращайтесь к текущей редакции«Internet Official Protocol Standards»...
Подробнее...
SQL injection
Что побудило меня написать эту статью? Желание поделиться навыками, с другими начинающими хакерами.Статья эта написана только в целях повышения уровня знаний и за любое другое применение автор не...
Подробнее...
Поисковый маркетинг губит...
Что такое «маркетинг веб-сайта»? В 99% случаев первое, что приходит на ум — это SEM, то есть поисковый маркетинг, во многом из-за сходства терминов. Однако подобная логика часто приводит к...
Подробнее...
Дюжина вопросов по...
Существуют несколько вопросов, которые изо дня в день повторяются на доске сообщений сервера ISAServer.org и в списках подписчиков. Эти же самые вопросы задают также в общих новостных лентах...
Подробнее...
Цветной экран смерти
Если ты кодил под Ring 0, то знаешь, что за показ экрана смерти ответственны функции ядра KeBugCheck и KeBugCheckEx.Правда, это реализовано немного по-разному в Windows 2000 и ниже и в Windows XP...
Подробнее...
Проблемы в работе Windows...
Проблемы в работе Windows Server 2003 Terminal ServicesЕсли вы занимаетесь настройкой Windows 2003 Terminal Services, имейте в виду, что Microsoft выпустила 22 программы коррекции для известных...
Подробнее...
Многоязычность в РНР
Что же я имел ввиду, говоря о мультиязычности. Ну, наверняка каждый из моих достопочтенных читателей не раз видели крутые порталы и между всем сбродом информации находили две маленькие иконки,...
Подробнее...