
726 Глава 7. Прикладной уровень
позволяет управлять тем, как выглядят страницы. Оба языка, впрочем, порой ис-
пользуются не по назначению. Следует иметь это в виду.
XML можно использовать не только для описания веб-страниц. Все чаще он
используется в качестве языка для связи между прикладными программами.
В частности, SOAP (Simple Object Access Protocol — простой протокол доступа
к объектам) предоставляет возможность выполнения удаленных вызовов про-
цедур между приложениями способом, независимым от языка и системы. Клиент
формирует запрос в виде сообщения XML и отсылает его на сервер по описывае-
мому далее протоколу HTML. Сервер отсылает назад ответ, представляющий со-
бой форматированное XML-сообщение. Таким образом могут общаться прило-
жения, работающие на разнородных платформах.
XHTML — расширенный язык разметки гипертекста
К языку HTML постоянно предъявляются новые требования. Многие представи-
тели этой индустрии чувствуют, что в будущем большинство устройств, связан-
ных со Всемирной паутиной, будут представлять собой не ПК, а беспроводные
портативные устройства типа PDA. У таких мини-компьютеров нет столь боль-
шого объема памяти, чтобы работать с большими браузерами, обладающими слож-
ной эвристикой, с помощью которой они пытаются отображать синтаксически
некорректные страницы. Таким образом, следующей версией после HTML 4 дол-
жен стать язык, отличающийся крайне высокой требовательностью. Он называ-
ется не HTML 5, a XHTML, поскольку, по сути дела, представляет собой HTML 4,
приведенный к стандарту XML. Под этим мы подразумеваем, что теги типа <hl> не
имеют существенного значения. Чтобы добиться от такого тега того эффекта, ко-
торый он производит в HTML 4, необходимо написать определение на XSL в от-
дельном файле. XHTML — это новый веб-стандарт, который рекомендуется
использовать при создании любых веб-страниц для достижения максимальной
переносимости на другие платформы и независимости отображения от браузера.
Между XHTML и HTML 4 существует шесть существенных и множество мел-
ких различий. Во-первых, страницы и браузеры стандарта XHTML должны ра-
ботать в строгом соответствии со стандартом. Низкопробные страницы уже от-
жили свой век. Это свойство унаследовано из XML.
Во-вторых, все теги и атрибуты должны быть написаны строчными буквами.
Так, тег <HTML> будет считаться некорректным в XHTML. Необходимо писать
<htm"l>. Аналогично, некорректной записью считается такая: <img SRC="pic001. jpg">
Она содержит имя атрибута, написанное заглавными буквами, а это запрещено.
В-третьих, всегда должны присутствовать закрывающие теги, даже для </р>.
Если у тега не может быть естественного закрывающего тега (например, <Ьг>,
<hr>, <img>), то перед закрывающей скобкой тега следует ставить косую черту.
Например
<img src--p1c00l.jpg" />
В-четвертых, все значения атрибутов должны указываться в двойных кавыч-
ках. Вот пример неправильного использования тега:
<img src--p1c00l.jpg" height-500 />
Всемирная паутина (WWW) 727
Число 500 должно быть заключено в двойные кавычки, как и имя JPEG-файла.
В-пятых, свойство вложенности тегов должно использоваться корректно.
В прошлом это не требовалось, важно было только получить ожидаемый резуль-
тат. Раньше вполне легальным было написать:
<center> <b> Летние фотографии </center> </t»
В XHTML это запрещено. Закрывающие теги должны быть написаны строго
в обратном порядке по отношению к открывающим тегам.
В-шестых, в каждом документе должен быть указан его тип. Мы имели воз-
можность в этом убедиться на примере листинга 7.8. Все серьезные и мелкие из-
менения, которые происходят в стандартах, обсуждаются на сайте www.w3.org.
Динамические веб-документы
Все идеи, рассматривавшиеся до сих пор, соответствуют модели, показанной в
листинге 6.1: клиент сообщает серверу имя файла, а тот в ответ возвращает файл.
В первые годы существования Всемирной паутины все ее содержимое и в самом
деле было статическим (просто файлы). Однако в последние годы в Сети появля-
ется все больше динамических объектов, то есть таких, которые создаются по тре-
бованию, а не хранятся постоянно на диске. Автоматическое создание объектов
может происходить как на стороне сервера, так и на стороне клиента. Рассмотрим
оба случая по порядку.
Динамическая генерация содержимого веб-страниц
на стороне сервера
Чтобы понять, зачем вообще нужна динамическая генерация веб-страниц на сторо-
не сервера, рассмотрим использование форм, описанных ранее. Когда пользова-
тель заполняет поля формы и нажимает кнопку Submit (Подтверждение), серверу
отправляется сообщение, содержащее в себе данные, предоставленные пользова-
телем. Это сообщение не содержит имя запрашиваемого файла. Требуется, чтобы
оно было передано для обработки программе или скрипту. Обычно обработка
подразумевает использование пользовательских данных для поиска по базе дан-
ных на серверном диске и создание HTML-страницы, содержимое которой зави-
сит от результатов этого поиска. Затем страница отсылается клиенту. Например,
в приложении для электронной коммерции нажатие кнопки ПЕРЕЙТИ К РАС-
ЧЕТАМ приводит к тому, что браузер возвращает на сервер cookie-файл с содер-
жимым корзины клиента. На сервере при этом должны запуститься определен-
ные программы или скрипты, в задачу которых входят обработка cookie и генера-
ция HTML-страницы. Отправляемая клиенту HTML-страница может содержать
форму со списком товаров, положенных в корзину, и адрес доставки вместе с за-
просом подтверждения заказа и предложением выбрать одну из возможных форм
оплаты. Этапы обработки информации, полученной из HTML-формы, показаны
на рис. 7.15.
Традиционный способ работы с формами и другими видами интерактивных веб-
страниц связан с использованием системы CGI (Common Gateway Interface —