Интернет: как это работает

Часть 6. World Wide Web

Александр Прохоров

Гипертекст

Всемирная паутина

Браузеры

Web-страница

HTML

Механизм работы Web-сервера

Статические и динамические страницы

   Технология CGI

   JavaScript-приложения

   Java-аплеты и элементы управления ActiveX

 

WWW (World Wide Web — Всемирная паутина) — самый популярный сервис Интернета. Именно он, благодаря своей относительной простоте и наглядности для пользователей, сделал столь массовыми обращения к ресурсам Сети. Итак, что же такое WWW и как работает данная служба?

В самом общем плане WWW — это система Web-серверов, поддерживающая документы, форматированные специальным образом. Служба WWW реализована в виде клиент-серверной архитектуры. Пользователь с помощью клиентской программы (браузера) осуществляет запрос той или иной информации на сервере, а Web-сервер обслуживает запрос браузера. Браузер — это программа, обеспечивающая обращение к искомому ресурсу на сервере по его URL (универсальному адресу ресурса), интерпретирующая полученный результат и демонстрирующая его на клиентском компьютере (рис. 1).

Сервер и клиент обычно работают на разных компьютерах, а возможно, и на разных аппаратных платформах, и под управлением разных операционных систем.

Протокол, по которому происходит доставка Web-сервером документа Web-браузеру, носит название HTTP (Hypertext Transfer Protocol — Протокол передачи гипертекста). Для того чтобы подробнее объяснить механизм просмотра документов на Web-сервере, необходимо ввести несколько понятий, и прежде всего понятие гипертекста.

Гипертекст

Гипертекст (Hypertext) — это текст, содержащий гиперссылки, связывающие слова или картинки документа с другим ресурсом (с каким-нибудь еще документом или с иным разделом этого же документа), при этом подобные «связанные» слова или картинки документа, как правило, выделяются, обычно с помощью подчеркивания. Пользователь может активировать эту связь щелчком мыши. В большинстве случаев подобная активизация ссылки приводит к тому, что вызываемый таким образом ресурс замещает текущий документ. Связать гиперссылкой можно не только слово, но и целый раздел документа и даже область конкретной формы на какой-либо картинке документа.

Некоторые авторы определяют гипертекстовый документ как документ, содержащий меню для перехода к другим ресурсам. Идею гипертекстовой организации документа можно проиллюстрировать на примере справочников. Если художественную книгу мы обычно читаем с начала и до конца (линейно), то справочную литературу мы чаще всего читаем нелинейно: например, встретив незнакомое слово, ищем его в приложении или в толковом словаре, затем вновь возвращаемся к начатому тексту и так далее. Иными словами, мы обращаемся к разным разделам справочника по мере необходимости.

В принципе, идея нелинейного прочтения текста возникла задолго до появления компьютеров. Известно, например, что в толковании на книгу псалмов Гильберта Порретанского (около 1150 года н.э.) применялись специальные пометки на полях, которые отсылали читателя на страницы в других местах книги.

Практическое применение идеи и сам термин «гипертекст» появились с возникновением электронных документов, хотя и существенно раньше, чем сама служба WWW. Впервые термин «гипертекст» был употреблен Тедом Нельсоном1 (Ted Nelson) в 1965 году. Существенный вклад в развитие гипертекстовых систем внесла фирма Apple.

Поскольку современные электронные документы содержат не только текст, но и любую мультимедийную информацию (текст, графика, звук), в качестве ссылок стали использовать не только текстовые, но и графические объекты. Со временем понятие гипертекста было расширено до понятия гипермедиа. Гипермедиа — это метод организации мультимедийной информации на основе ссылок на разные типы данных. Гипермедиадокументы используются не только в WWW. Типичным примером гипермедиа является мультимедийная информация, содержащаяся в электронной энциклопедии. Читая, к примеру, текст о певчих птицах в CD-ROM-энциклопедии, вы можете перейти на соответствующую ссылку и послушать пение выбранной птицы, а затем посмотреть видеоролик с записью ее полета.

Особенно продуктивной идея гипертекста оказалась применительно к объединению цифровой информации, распределенной на серверах во всем мире. Вот здесь мы непосредственно подходим к понятию Всемирной паутины.

В начало В начало

Всемирная паутина

WWW — это глобальная гипертекстовая система, организованная на базе Интернета. WWW представляет собой механизм, при помощи которого связывается информация, доступная посредством многочисленных Web-серверов во всем мире. Web-сервер — это программа, которая «умеет» получать http-запросы и выполнять в соответствии с этими запросами определенные действия, например запускать приложения и генерировать документы.

Документ, доступный через Web, называют Web-страницей, а группы страниц, объединенные общей темой и навигационно, — Web-узлами, или Web-сайтами. Один аппаратный Web-сервер может содержать несколько Web-сайтов, но возможна и обратная ситуация, когда огромный Web-сайт может поддерживаться группой Web-серверов (компьютеров).

Для того чтобы лучше понять идею организации Всемирной паутины, обратимся к рис. 2, на котором показан пример использования WWW для поиска информации о новостях. Предположим, что пользователю, проживающему в США, необходимо узнать последние московские новости, и он не знает адреса сервера, на котором можно найти эту информацию. Вполне вероятно, что для того, чтобы получить необходимые данные, он набирает известный ему адрес Web-сайта, который физически расположен на компьютере в США и посвящен теме «Новости в мире». Очевидно, что на одном сервере не могут храниться данные о местных новостях всех уголков земного шара. При этом возможно, что у наиболее важных новостей мирового значения на сервере есть ссылки на новостные сайты, актуальные для разных регионов. Вполне вероятно, что, выбрав ссылку «Европа», пользователь соединится уже с другим компьютером, расположенным где-то в Европе (рис. 2). Предположим, что на странице европейского сайта есть ссылка на Россию. По ссылке «Россия» можно соединиться с сервером в России. Вероятно, по ссылке «Москва» на этом сайте пользователь получит необходимую информацию, а возможно, соединится с четвертым сервером, который представит необходимую ему информацию. Таким образом, уточняя и детализируя информацию, можно получить новости конкретного района. Важно отметить, что в представленном на рисунке примере пользователь обращается с запросами к разным серверам и при переходе с одного сервера на другой ему не нужно каждый раз задавать адреса серверов и тем более знать о том, где они физически находятся. В этом случае говорят, что процедура происходит прозрачно для пользователя, то есть пользователь воспринимает весь процесс так, как если бы все полученные им страницы находились на его собственном компьютере. Таким образом, процесс просмотра информации можно сравнить с перелистыванием страниц огромной книги на одном рабочем столе по принципу «нажми и получи». Процесс перемещения по документам с помощью гипертекстовых ссылок получил в обиходе название навигации, или серфинга2 .

Тот факт, что серфинг не требует знаний о местоположении искомых документов, как раз и является основным удобством и причиной популярности службы WWW.

В начало В начало

Браузеры

Как мы уже отмечали, в браузерах реализованы две основные функции: запрос информации у Web-сервера и отображение ее на клиентском компьютере. Кроме того, браузеры обладают дополнительными сервисными функциями, такими как упрощение поиска, хранение закладок, указывающих на избранные страницы, и др.

Во многом развитие браузеров определялось конкуренцией двух компаний-разработчиков — Netscape и Microsoft.

В середине 1990-х годов компания Netscape захватила большую долю рынка благодаря своему продукту Netscape Navigator, а Microsoft начала активно продвигать разработанный ею Internet Explorer. История противоборства этих двух программ получила название войны браузеров, которая фактически свелась к появлению у них новых возможностей. Благодаря интеграции Internet Explorer с операционной системой Windows и предложению браузера в качестве бесплатной программы, Microsoft удалось одержать победу в этой войне. В результате рынок браузеров стал достаточно специфичным: сегодня наиболее популярные программы Internet Explorer и Netscape Navigator распространяются бесплатно, в то время как некоторые альтернативные и значительно менее распространенные программы являются платными.

Постепенно браузеры из устройств для просмотра HTTP-документов стали универсальными Интернет-клиентами. Более подробно о работе браузеров мы поговорим после того, как расскажем о строении Web-страницы.

В начало В начало

Web-страница

Популярность WWW обусловлена тем, что можно не только просматривать чужие страницы и иметь доступ к огромному количеству информации, представленной на сотнях миллионов компьютеров, но и создать собственные ресурсы и таким образом донести любую информацию до всех будущих посетителей сайта. Иными словами, WWW — это глобальный механизм обмена информацией: одни люди помещают информацию на Web-серверы, а другие ее просматривают. Создав Web-сайт, владелец может поместить туда различного рода информацию: текст, графику, звук, анимацию, которая станет доступной для всех посетителей этого ресурса. С появлением в Сети вашей страницы информация о вас или о вашей фирме станет доступна сотням миллионов пользователей круглосуточно семь дней в неделю. Количество информации, которое может быть предоставлено посетителю, практически не ограничено по времени, в отличие от радио или телевидения. Для того чтобы ваш сайт был наиболее посещаемым, необходимо обеспечить быстрый доступ к нему. Если вы попытаетесь создать Web-сайт на домашнем компьютере, подключив его к Интернету через обычный модем и телефонную линию, вы не сможете обеспечить к нему быстрый доступ и, скорее всего, отпугнете потенциальных посетителей. Как показывает опыт, больше всего посетителей раздражает долгая загрузка страницы, поэтому сервер, на котором вы хотите разместить свой сайт, должен иметь высокоскоростное подключение к Интернету.

Для того чтобы обеспечить надлежащую скорость доступа к вашему ресурсу, желательно воспользоваться услугами так называемого провайдера хостинга. Хостинг (от англ. host — хозяин) — это предоставление качественной услуги по размещению сайта на физическом Web-сервере провайдера или собственном сервере, размещенном на площадке провайдера. Обычно хостинг-провайдер взимает плату, которая тем выше, чем больше арендуемое дисковое пространство и интенсивность трафика. Однако существуют и бесплатные услуги хостинга. Если вы захотите получить доменное имя третьего уровня (например, www.ivanov.narod.ru: (доменное имя первого уровня — ru, доменное имя второго уровня — narod, доменное имя третьего уровня — ivanov), то, скорее всего, это будет бесплатно. Доменные имена третьего уровня предоставляются многими компаниями, предлагающими бесплатный «народный» хостинг. Например, имя www.your-name.narod.ru (где your-name — это имя, которое вы можете дать своему ресурсу) предоставляет компания Яндекс. Однако солиднее иметь домен второго уровня — лучше всего подойдет имя вида «ваша _фамилия.ru или ваша_компания.ru». В этом случае вам придется как минимум оплатить регистрацию вашего доменного имени. Зато при наличии у вас подобного имени ваши коллеги смогут найти вас в Интернете, даже не зная точного имени вашего сайта. Например, сайт http://www.compress.ru/ можно легко найти просто по названию журнала. При этом следует отметить, что сегодня найти незанятый домен довольно сложно.

Если вы собираетесь создать небольшой любительский сайт, то вас, скорее всего, устроит доменное имя третьего уровня и проблем с его бесплатным размещением не будет. Основные проблемы возникнут при его разработке.

Говорить о создании собственных страниц не имеет смысла до тех пор, пока мы не рассмотрим их устройство. Поэтому далее мы расскажем, из чего состоят Web-страницы, и для начала поговорим об основах языка гипертекстовой разметки HTML (Hypertext Markup Language), который предназначен для создания гипертекстовых документов.

В начало В начало

HTML

В предыдущих публикациях настоящего цикла мы уже отмечали, что к Интернету подключается огромное количество компьютеров различной архитектуры и разных возможностей по отображению информации. Задача разработки страниц для каждого типа оборудования является практически невыполнимой. С учетом того, что документ будет доступен миллионам компьютеров, нельзя заранее определить, на каком типе оборудования он будет воспроизводиться. Если мы говорим о текстовом документе, то он может отображаться не только на различных типах экранов, но и, например, может быть воспроизведен программой синтеза речи. При этом функциональная разметка документа должна быть прочитана независимо от способа вывода.

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

Для того чтобы пояснить идею организации HTML-документа, уместно привести аналогию с работой технического редактора, который готовит текст для верстки. Редактор делает разметку текста, отмечая, каким должен быть формат, как набрать заголовки, где что расположить. Например, это могут быть пометки типа: «Данный абзац напечатать жирным шрифтом, такое-то предложение выделить красным цветом, а после такого-то абзаца вставить текст со страницы такой-то». Для того чтобы комментарии редактора читались корректно, существуют специальные правила разметки. Верстальщик читает комментарии технического редактора и заверстывает текст в соответствии с ними.

Аналогичные комментарии записываются в HTML-документе, затем они прочитываются браузером, чтобы он «знал», как нужно отображать данные на экране компьютера. Язык HTML был разработан в конце 1980-х годов в физической лаборатории CERN (Швейцария) и поначалу использовался в локальной сети лаборатории. Однако вскоре он завоевал популярность и стал широко применяться в Интернете.

Следует отметить, что понятие функциональной разметки шире, чем понятие форматирования документа. Например, гипертекстовая разметка дает возможность определить, что тот или иной текст в документе является названием страницы (title). Очевидно, что это уже не форматирование, а именно определение функциональности конкретной части документа.

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

Это означает, что страница, описанная одним и тем же HTML-кодом, может по-разному отражаться на двух компьютерах с разными платформами, режимами монитора и браузерами. Можно сказать, что браузер выполняет форматирование документа, исходя из набора инструкций, содержащихся в HTML, и из возможностей по отображению информации конкретным компьютером.

Например, если на вашем компьютере нет шрифта, которым предписывается отобразить ту или иную надпись, будет использован другой, ближайший к нему из доступного набора.

Кроме того, пользователи могут изменить настройки браузера так, чтобы документ отображался оптимальным для них образом.

Например, в настройках браузера вы можете указать правила выбора цвета для отображения фона документа, определив, каким должен быть цвет шрифта на Web-странице и каким цветом должны выделяться текстовые гиперссылки.

Команды HTML (или управляющие маркеры гипертекстового документа) называют тэгами (от англ. tag — ярлык, маркер), они вставляются непосредственно в текст документа и заключаются в угловые скобки <...>.

Унифицированный набор заранее определенных тэгов позволяет пользоваться различными браузерами. Несмотря на тот факт, что HTML используется для представления Web-страниц, он также может применяться и для других целей, например для представления документов, размещенных на CD-ROM.

Основное достоинство HTML — это его простота. Для подготовки HTML-документов не требуется знания языков программирования. Добавлять в документ тэги разметки можно, используя обычный текстовый редактор или особые HTML-редакторы, имеющие специальные элементы управления для упрощения ввода тэгов.

Наличие средств визуальной разработки Web-страниц позволяет создавать HTML-документы, даже не запоминая назначения тех или иных тэгов. Визуальной разработкой называется процесс, при котором пользователь оперирует объектами, которые при разработке выглядят почти так же, как и при отображении браузером, а HTML-код создается при этом автоматически.

Существует более сотни тэгов для разметки информации на Web-странице. Большинство тэгов используется в парах. Открывающий и закрывающий тэги начинаются и завершаются знаками < и >. Закрывающий тэг отличается от открывающего наличием символа / (слэш) перед ключевым словом. Например, пара тэгов <b> …</b> (см. таблицу) используется для того, чтобы дать команду браузеру, что текст, помещенный между тэгами, должен быть отображен жирным шрифтом, а тэги <I> … </I> показывают, что при отображении текста должен быть применен курсив. Открывающий и закрывающий тэги воздействуют на часть документа, заключенную между ними. Расположение парных тэгов выполняется так, чтобы соблюдались правила вложения.

Кроме парных, бывают непарные тэги, которые определяют разовый эффект в конкретном месте или оказывают воздействие на весь документ. Например, тэг <br> часто используется для обозначения необходимости разрыва строки.

Эффект применения тэга может видоизменяться путем добавления атрибутов. Атрибут (от лат. attributum — присоединенное) показывает признак объекта, определяющий его состояние. Применение некоторых атрибутов подразумевает указание значения атрибута, которое отделяется от ключевого слова атрибута знаком равенства и заключается в кавычки.

Тэг присваивания цвета тексту (в таблице он показан в третьей строке) является примером тэга с атрибутом.

Одним из важнейших является тэг, определяющий гиперссылки. При определении гиперссылки необходимо связать элемент Web-страницы, по которому будет происходить переход, с адресом данного перехода. Тэг обозначается по первой букве слова «anchored», что в переводе с английского означает «привязанный».

Ссылка начинается с открывающего тэга <A> и заканчивается закрывающим тэгом </A>.

Адрес перехода определяется значением атрибута Href и представляет собой URL того ресурса, на который указывает ссылка. Таким образом, формат определения гиперссылки можно представить в виде:

<a href=”URL”>имя ссылки</a>

Пример HTML-текста, определяющий гиперссылку на сайт www.mail.ru, приведен в 4-й строке таблицы. Cтруктура HTML-документа определяется тэгами структуры.

HTML-документ начинается с тэгов <HTML><HEAD> (название страницы, указание кодовой страницы, указание типа документа) </HEAD><BODY> и заканчивается тэгами </BODY></HTML>. Почти все наполнение, которое вы хотите включить в страницу, помещается между тэгами <BODY> и </BODY>.

Стандарт HTML — это набор формальных рекомендаций, определенных консорциумом W3C (World Wide Web Consortium) и обрабатываемых браузерами ведущих производителей, такими как Microsoft Internet Explorer и Netscape Navigator. Последний стандарт языка — это HTML 4.0. Однако Internet Explorer и Netscape Navigator интерпретируют отдельные конструкции языка по-разному, а также используют некоторые нестандартные расширения, специфические только для данного браузера. Поэтому, в принципе, нет гарантии, что отображение страниц, использующих расширенные возможности HTML, будет одинаково осуществлено в разных браузерах. В связи с этим разработчики Web-страниц вынуждены проверять функциональность создаваемых сайтов как минимум в двух вышеназванных браузерах.

В начало В начало

Механизм работы Web-сервера

После того как мы ввели понятие языка HTML, можно подробнее описать механизм работы Web-сервера и браузера. Рассмотрим пример.

Предположим, ваш товарищ создал свой сайт по адресу www.petrov.ru и расположил на нем свое резюме по адресу http://www.petrov.ru/resume.htm. Что происходит, когда вы просматриваете данное резюме со своего компьютера?

Как только вы набираете в своем браузере вышеуказанный URL, браузер получает информацию об используемом протоколе (http), имени сервера (www.petrov.ru) и запрашиваемом файле (resume.htm). Браузер обращается к DNS-серверу, чтобы перевести имя сервера www.petrov.ru в IP-адрес, который служит для нахождения нужного сервера, устанавливает связь с Web-сервером и, используя протокол http, запрашивает искомый ресурс. Сервер посылает браузеру HTML-страницу, чтобы он мог отобразить данный документ. Браузер считывает HTML-тэги, воссоздает страницу на экране вашего компьютера, и вы видите результат своего запроса.

Обычно даже простая Web-страница содержит не только текст, но и графику. Иными словами, страница состоит из нескольких файлов, то есть в общем случае передаваемый на ваш компьютер файл может быть не только текстовым, но и графическим или еще каким-либо. Как же браузер распознает эти файлы? Вначале сервер посылает текстовое сообщение, которое информирует клиента о том, какой файл он будет отправлять: что это будет — текст в формате HTML, или графика в формате jpg, или что-нибудь другое, и только после этого передает содержание данного файла. Несмотря на то что обычно Web-страница состоит из многих файлов, за время одного запроса Web-сервер посылает только один файл. То есть, получив HTML-текст и найдя в нем, например, ссылку на графический элемент, браузер посылает новый запрос на сервер, и при этом не обязательно на тот же самый, с которого пришел HTML-текст. Вероятно, большинству пользователей Интернета знакома ситуация, когда загрузка страницы происходит с задержкой и вначале отображается текст, а потом начинают появляться картинки. Данная ситуация как раз отражает последовательность загрузки элементов Web-страницы. Для того чтобы скачать каждый новый файл, браузер должен установить новую сессию. При этом, поскольку современные серверы и браузеры работают в многопоточном режиме, одновременно могут выполняться несколько сессий, но для скачивания каждого нового файла инициируется своя сессия.

Если запрашиваемого ресурса по данному адресу нет, то Web-сервер выдаст сообщение, которое вы, вероятно, не раз видели на своем экране: 404/File not found (файл не найден).

В начало В начало

Статические и динамические страницы

Статические страницы представляют собой точную копию файлов, лежащих в каталогах Web-cервера, и не изменяются до тех пор, пока разработчик сам в них что-то не поменяет. Однако страницы могут формироваться динамически, то есть во время обработки запроса по какой-то программе, а не из готового файла на диске. Существует несколько способов формирования такой страницы:

  • формирование по запросу непосредственно на Web-сервере. Для реализации возможности динамического формирования Web-страниц необходимо дать серверу указания, какие файлы являются «обычными», а какие содержат инструкции по их программной обработке. Так, все файлы в соответствующем каталоге Web-сайта, в списке прав доступа к которым есть «выполнение», считаются динамическими, а сервер сам подбирает средство для формирования конкретной страницы при обращении к такому файлу на основе его атрибута и/или расширения его имени. При этом страницу может сформировать либо сам сервер (при помощи специальных команд), либо внешняя программа, запускаемая непосредственно или через CGI-интерфейс (common gateway interface — общий шлюзовой интерфейс). Программа для формирования динамической страницы может быть написана на компилируемом или интерпретируемом языке. Текст программы, содержащий команды для динамического формирования страниц, называется скриптом. Список соответствия атрибутов скриптов внешним программам для их обработки задается в разделе Web-сервер/Обработчики скриптов. Например, по умолчанию скрипты с расширениями *.pl и *.cgi обрабатываются интерпретатором языка Perl;
  • формирование на компьютере пользователя. В этом случае тексты программ для формирования динамических Web-страниц передаются сначала на локальный компьютер пользователя, где уже браузер должен вызвать для них соответствующее средство для обработки и получения Web-страницы. Программа для формирования динамической страницы также может быть написана как на компилируемом, так и на интерпретируемом языке.
В начало В начало

Технология CGI

Вы наверняка сталкивались со страницами, которых ранее не существовало и которые были созданы по вашему запросу динамически — сформированы, как говорится, «на лету».

Например, любая книга отзывов предоставляет вам определенную форму, в которую вы добавляете свой отзыв, и затем, когда вы в следующий раз откроете эту страницу, она будет содержать новое сообщение.

Одна из технологий, позволяющая добавить динамическое содержание в Web-страницы, называется CGI. Она позволяет ассоциировать с тем или иным URL не просто статический документ, а программу, в результате работы которой могут быть сформированы данные в реальном времени.

Рассмотрим пример с предоставлением сведений о погоде. Метеорологическая сводка о погоде меняется каждый день, и ежедневно может создаваться новая статическая страница с прогнозом. Однако, если вы хотите предоставлять мгновенные данные, вы должны каждый раз генерировать новую страницу. Это может быть реализовано на основе CGI-технологии. В момент обращения на сервер на нем запускается CGI-программа, которая обращается к цифровому измерительному устройству и выдает сведения о температуре, давлении и т.д. Когда вы в очередной раз обратитесь на этот адрес, вы получите новые сведения.

Другой пример: когда вы заполняете некоторый запрос, например запрос в поисковой системе, то в ответ получаете результаты работы СGI-программы в виде набора искомых адресов.

CGI-программу можно представить как часть Web-сервера, которая запускается Web-сервером в реальном времени. Сервер передает запросы пользователя CGI-программе, которая их обрабатывает и возвращает результаты своей работы на экран пользователя (рис. 3). На большинстве Web-серверов CGI-механизм организован следующим образом: создается специальная поддиректория, в которой хранятся подобные программы, и администратор Web-сервера настраивает доступ к ней таким образом, чтобы файлы из нее не считывались, а запускались на выполнение. Результат работы программы отсылается браузеру в ответ на запрос. С точки зрения клиента нет никакой разницы, что находится по адресу данного URL — статический документ или CGI-программа. Браузер воспринимает информацию одинаково независимо от того, сформирована ли она «на лету» или речь идет о статической странице. Результат работы CGI-программы имеет тот же формат, что и статический документ.

Аббревиатура CGI наверняка попадалась вам в строке вашего браузера во время путешествия по Всемирной паутине, и вы, скорее всего, видели ссылку на /cgi-bin/ — директорию, в которой обычно и лежат cgi-программы. Множество интерактивных сервисов, таких как гостевая книга, форум и т.д., построены именно на cgi-программах.

Под термином «CGI» понимают не только программу, но и протокол. В этом смысле CGI — это стандартный для Web-сервера способ передать пользовательский запрос прикладной программе и получить данные назад для передачи их пользователю. Протокол CGI для пересылки данных между сервером и приложением является частью протокола HTTP.

Следует отметить, что если вы собираетесь разместить свою страницу на серверах бесплатного хостинга, то вполне возможно, что cgi-скрипты на этих серверах не поддерживаются.

Альтернативой CGI является технология компании Microsoft Active Server Page (ASP), построенная по тому же принципу: скрипт, включенный в Web-страницу, выполняется на сервере до того, как страница отсылается пользователю.

Существуют и другие технологии, работающие по тому же принципу.

Как видно на рис. 3, CGI-программа работает на стороне сервера. Однако возможно также организовать динамические страницы за счет передачи на клиентский компьютер программ, которые генерируют динамическое содержание страниц уже на стороне клиента (рис. 4). Эта технология реализована следующим образом: активные документы хранятся на Web-серверах и скачиваются на локальный компьютер так же, как и статические страницы, но после того, как программа активного документа оказывается на локальном компьютере, она запускается и выполняет определенные вычисления на компьютере пользователя, опираясь на локальные вычислительные ресурсы. А результаты этих вычислений уже отображаются на экране. Соответственно скорость отображения данных на экране не зависит от скорости связи с удаленным сервером, поскольку вывод активного документа происходит только после его загрузки на локальный компьютер. Для создания активных документов могут использоваться различные технологии: приложения, написанные на JavaScript, Java-аплеты и элементы управления ActiveX.

В начало В начало

JavaScript-приложения

JavaScript — это интерпретируемый язык описания сценариев, разработанный компанией Netscape.

C помощью приложений, написанных на JavaScript, можно расширить возможности HTML-страниц. JavaScript, внедренный в Web-страницу, выполняется на стороне клиента, то есть интерпретируется браузером и может добавить HTML-странице значительную интерактивность. JavaScript часто используют для обработки ввода данных в формы и некоторых других сервисов.

Обычно скриптовые языки (языки подготовки сценариев) проще для написания программ, чем компилируемые языки, такие как C и C++. Напомним, что приложение, созданное на базе интерпретируемого языка, предполагает наличие интерпретатора, который осуществляет покомандную обработку исходного текста программы (каждый оператор транслируется в машинный код и сразу выполняется, затем транслируется и выполняется следующий оператор), в то время как компилятор транслирует сразу весь исходный текст программы в объектный код, который затем преобразуется редактором связей в выполняемую программу. Поэтому скрипт выполняется дольше, чем откомпилированная программа, поскольку каждая инструкция сначала обрабатывается другой программой.

JavaScript-приложение позволяет выполнять произвольные математические вычисления, открывать и закрывать новые окна, вызывать всплывающие меню, подсказки, перемещающиеся графические объекты и т.д.

В JavaScript реализована возможность определять обработчики событий — фрагменты кода, выполняющиеся при определенных действиях пользователя. Это позволяет использовать JavaScript для обеспечения взаимодействия с пользователем. Например, в свое время мне попадалась написанная на JavaScript программка, которая выводила на экран изображение пары глаз с бегающими зрачками, двигающимися в сторону курсора и как бы следящими за действиями пользователя. Можно привести более практичный и, скорее всего, знакомый пользователям пример. Большинство из вас заполняли различные формы на Web-сайтах и сталкивались с ситуацией, когда, нажав на кнопку «Отправить», вместо подтверждения того, что ваша форма отправлена на Web-сервер, вы получали сообщение, что не все параметры формы заполнены. Такая служба может быть организована на базе JavaScript-приложения. Данное приложение следит, все ли необходимые поля заполнены, и в случае если заполнение произведено неверно, без обращения к серверу генерирует сообщение о том, что определенные поля не заполнены. Эта процедура может продолжаться на стороне клиента до тех пор, пока форма не будет правильно заполнена. В отличие от cgi-скриптов, которые выполняются на сервере и не зависят от типа браузера, установленного на клиентской машине, JavaScript-приложение может требовать наличия браузера определенной версии.

В начало В начало

Java-аплеты и элементы управления ActiveX

Большинство браузеров поддерживает вышеупомянутые языки сценариев, такие как JavaScript. Это позволяет расширить функциональные возможности стандартных элементов управления, однако в ряде случаев мощности языков сценариев явно недостаточно или требуется решение, которое не должно зависеть от конкретного браузера. В этих случаях применяются аплеты Java. Слово аплет происходит от английского «application» — «приложение». Java-аплет — это небольшая прикладная программа, написанная на языке Java, которая может быть встроена в HTML-страницы и передана из Сети вместе с документом как присоединение для его исполнения у пользователя. Технология разработки HTML-документа позволяет написать Java-программы, откомпилировать и поставить ссылки на полученный код в HTML-документе. Такие дополнительные Java-программы и называются Java-аплетами.

Java-аплет может представлять расчеты, анимацию или другие задачи, не требуя дополнительных запросов к серверу.

Java-аплет начинает выполняться сразу после передачи на компьютер клиента или запускается с помощью специальных команд. Иногда он представляет собой достаточно сложную программу. В целях безопасности Java-аплеты имеют ограничения по доступу к определенным ресурсам локального компьютера и запрет коммуникаций с компьютерами Сети, за исключением того компьютера, с которого данный аплет получен.

Своеобразным ответом со стороны компании Microsoft на технологию Java, разработанную компанией Sun Microsystems, является технология ActiveX control.

ActiveX control обычно реализована в виде небольших библиотек, которые могут скачиваться браузером (или уже установлены на клиентском компьютере) и представляются пользователю в виде динамического содержания Web-страницы.

По соображениям безопасности некоторые посетители Web-сайтов не хотят получать на свой компьютер программы из Интернета, поэтому современные браузеры позволяют отключить загрузку Java-аплетов и элементов управления ActiveX. Более подробно эти вопросы будут рассмотрены в последующих публикациях.

 

Автор будет благодарен за замечания и комментарии к статье, которые он просит направлять по адресу: alproh@aha.ru.

КомпьютерПресс 1'2003