Эти новые типы использования похожи на традиционные приложения (например, программы для работы с почтой и текстовые редакторы). Отличие состоит в том, что эти приложения запускаются в браузере, а пользовательские данные хранятся на серверах в центрах обработки данных Интернета. Они используют веб-протоколы, получают информацию через Интернет, и браузер отображает пользовательский интерфейс. Преимущество такого подхода состоит в том, что пользователю не нужно устанавливать отдельные приложения, и он может получить доступ к своим данным с разных компьютеров, причем данные сохраняются у оператора сервиса. Конечно, немаловажен и тот факт, что эти приложения предоставляются крупными провайдерами бесплатно. Эта модель является распространенной формой облачных вычислений (cloud computing), при которых вычисления перемещаются с пользовательских компьютеров на совместно используемые кластеры серверов в Интернете.
Веб-страницы больше не могут быть статичными, если они должны работать как приложения. Требуется динамический контент. Например, страница библиотечного каталога должна показывать, какие книги доступны на данный момент, а какие находятся на руках и потому недоступны. Сходным образом у пользователя должна быть возможность взаимодействовать со страницей фондовой биржи, чтобы посмотреть курсы акций на разные периоды времени и вычислить прибыли и потери. Как можно понять по этим примерам, динамический контент может генерироваться программами, запущенными на сервере или в браузере (или и там, и там).
В этом разделе мы рассмотрим каждый из этих случаев по очереди. В общем, ситуация выглядит так, как показано на рис. 7.12. Например, представим себе сервис, работающий с картами, который позволяет пользователю ввести название улицы, после чего предоставляет ему карту местности. Получив запрос, веб-сервер должен использовать программу для создания страницы, которая показывает карту запрашиваемой местности из базы данных улиц и другой географической информации. Это действие показано как шаги 1-3. Запрос (шаг 1) вызывает запуск программы на сервере. Программа опрашивает базу данных и генерирует нужную страницу (шаг 2) и возвращает ее в браузер (шаг 3).

Рис. 7.12. Динамические страницы
Но это не весь динамический контент. Возвращаемая страница сама может содержать программы, которые запускаются в браузере. В нашем примере программа позволяет пользователю находить маршруты и исследовать прилежащие области с разными уровнями детализации. Она обновляет страницу, увеличивая или уменьшая масштаб в соответствии с запросами пользователя (шаг 4). Чтобы провести некоторые операции, программе может понадобиться больше данных с сервера. В этом случае программа отошлет запрос на сервер (шаг 5), который отыщет нужную информацию в базе данных (шаг 6) и вернет ответ (шаг 7). Затем программа продолжит вносить изменения на страницу (шаг 4). Запросы и ответы обрабатываются в фоновом режиме; пользователь может даже не знать о них, так как URL и название страницы обычно не изменяются. Страница с программами, выполняющимися на стороне клиента, может предоставить более удобный интерфейс, чем страница, включающая только программы, выполняющиеся на сервере.
Динамическая генерация содержимого веб-страниц на стороне сервера
Давайте рассмотрим динамическую генерацию веб-страниц на стороне сервера подробнее. Простая ситуация, при которой необходима генерация страниц на стороне сервера, — это использование форм. Рассмотрим ситуацию, при которой пользователь заполняет форму заказа (см. рис. 7.11) и нажимает на кнопку Отправить заказ. Когда пользователь нажимает на кнопку, на сервер, на URL, определенный в форме, отсылается запрос (в этом случае методом POST на http://widget.com/cgi-bin/order. cgi), содержащий в себе данные, введенные пользователем. Эти данные должны быть переданы программе или скрипту для обработки. Таким образом, URL вызывает запуск определенной программы, в которую данные предоставляются в качестве входной информации. В этом случае обработка включает в себя введение заказа во внутреннюю систему AWI, обновление записей клиента и списание денег с кредитной карты. Страница, которая возвращается в ответ на этот запрос, зависит от того, что произойдет в процессе обработки. Результат не фиксирован, как в случае со статичными страницами. Если заказ успешно обрабатывается, возвращаемая страница может содержать дату доставки товара. Если запрос не был успешно обработан, возвращаемая страница может гласить, что запрашиваемых товаров нет в наличии или по какой-то причине не была принята кредитная карта.
Читать дальше
Конец ознакомительного отрывка
Купить книгу