Серверные директивы. Стандартный набор серверных директив.
Теперь пришла пора поговорить о серверных директивах.
Введение в серверные директивы
Весь HTML-код, из которого состоит Web-страница, пересылаемая по Сети, обрабатывается клиентом. Клиентом практически всегда является Web-обозреватель (существуют и другие программы, обрабатывающие Web-страницы на стороне клиента, но мы не будем их рассматривать). Именно для Web-обозревателя предназначены все эти теги, что мы создаем вручную или в Web-редакторе. Web-сервер же их совсем не понимает.
Задача Web-сервера совсем другая: принять запрос от клиента, найти нужный файл на своих дисках и переслать его клиенту для обработки. Ну и, разумеется, он должен устойчиво работать и потреблять как можно меньше системных ресурсов. Обработка HTML-кода в его обязанности не входит.
Однако разработчики Web-серверов все же заставили их понимать некоторые команды, с помощью которых можно обработать HTML-код. Как вы уже поняли, эта обработка выполняется на стороне сервера, более того, самим Web-сервером. Конечно, эти команды позволяют выполнить самые простые действия: вставить в содержимое одного файла содержимое другого, поместить в код текущую дату и т. п. Но даже в этом случае они – хорошее подспорье Web-дизайнеру.
Эти команды и называются серверными директивами. Несмотря на всю их простоту, они позволяют решить много проблем, неустранимых иными средствами.
Помните, как мы пытались поместить на Web-страницу текущую дату? Для этого нам пришлось в свое время писать Web-сценарий. А если Web-обозреватель не поддерживает Web-сценарии? А если компьютер, на котором он работает, настолько маломощен, что пользователь отключил поддержку сценариев? В таком случае сценарий, помещающий на страницу дату, не выполнится.
Web-сервер же работает всегда, и серверная директива, осуществляющая вставку в HTML-код текущей даты, выполнится в любом случае. Web-обозреватель же, загрузивший страницу, даже не будет знать, что эта страница была предварительно обработана сервером. (Вообще-то, об этом догадаться может если не Web-обозреватель, то опытный пользователь, имеющий представление о Web-серверах и их настройке.)
Так же трудно вставить HTML-код, находящийся в одном файле, в другой файл средствами клиентских Web-сценариев. Web-сервер же с помощью специальной директивы делает это с легкостью. Таким образом, можно создавать Web-страницы, "собираемые" на стороне сервера из множества частей: заголовка, полосы навигации, сведений об авторских правах и, разумеется, основного содержимого. Это идеальное решение многих проблем сайтов, созданных на основе табличного дизайна. Далее об этом будет рассказано подробнее.
К несчастью, как уже было сказано, серверные директивы никем не стандартизировались. Каждый Web-сервер поддерживает свой набор этих директив, а каких – зависит от доброй воли его создателя. Правда, существует некий набор директив, поддерживаемых большинством серверов, этакий неписаный стандарт "де-факто". Применяя в своих страницах директивы из этого набора, вы можете быть уверены, что они с большой долей вероятности будут поддерживаться сервером, на котором вы собираетесь их (страницы) разместить.
А пока что давайте рассмотрим серверные директивы, поддерживаемые подавляющим большинством Web-серверов, за исключением самых уж примитивных. Назовем их стандартным набором серверных директив, хотя их фактически никто не стандартизировал. Но все равно перед тем, как применять серверные директивы, обратитесь к документации на Web-сервер или к его администратору, чтобы выяснить, какие директивы ваш сервер поддерживает.
Стандартный набор серверных директив
Прежде всего, давайте рассмотрим, как серверные директивы вставляются в HTML-код. Проблема заключается в том, что их нужно как-то выделить, чтобы Web-сервер сразу их "увидел", а Web-обозреватель, наоборот, "не заметил". Поэтому серверные директивы помещаются в тег комментария и помечаются значком # ("решетка"):
<!-- #<Директива>
<Атрибут1>=<Значение1>
<Атрибут2>=<Значение2>... -->
Однако, кроме этого, надо выполнить еще кое-какие действия. Чтобы Web-сервер "знал", что в какой-либо странице используются серверные директивы, нужно изменить расширение файла, в котором сохранена эта страница. Как вы помните, обычно HTML-файлы имеют расширение .htm или .html. Так вот: эти расширения нужно изменить соответственно на .shtm и .shtml.
Подавляющее большинство Web-серверов требуют, чтобы Web-страницы с серверными директивами находились в файлах с расширениями .shtm и .shtml. Правда, встречаются серверы с другими требованиями (например, малоизвестный Web-сервер со странным названием "n3 " требует, чтобы такие файлы имели расширение .ssi), но подобные случаи весьма редки. И все же, невредно было бы прежде, чем применять в своих страницах серверные директивы, прочитать документацию к серверу или проконсультироваться у его администратора.
Как видите, серверная директива может иметь (и практически всегда имеет) несколько атрибутов, которым присвоены значения. В этом смысле серверные директивы чем-то похожи на теги HTML.