20 сентября 2002 г.
Бурное развитие Internet породило множество языков Web-программирования. Каждый из них имеет свои плюсы и минусы и предпочтителен для решения определенного круга задач
Проект Internet начинался около 30 лет назад в результате попыток объединить сеть министерства обороны США ARPAnet (Advanced Research Projects Agency net) с различными радио- и спутниковыми сетями. Первоначально с этой сетью работали военные и научно-исследовательские организации, и лишь около десяти лет назад она превратилась в быстрорастущее и многогранное сообщество компьютерных пользователей и поставщиков информации.
Первоначально Internet была наполнена в основном текстовой информацией. Однако в конце 80-х ученый Тим Бернес-Ли из Европейской лаборатории физики элементарных частиц (CERN) выпустил язык гипертекстовой разметки, для которого был разработан браузер Mosaic. Так родился HyperText Markup Language (HTML), Internet-обозреватели и World Wide Web. До изобретения HTML информация представлялась как фрагментированный набор графических изображений, звуковых файлов, текстовых документов и др. HTML же объединил все эти элементы.
Хотя сегодня понятия Internet и WWW фактически тождественны, однако развитие World Wide Web стало возможным лишь после создания HTML. Ведь WWW - это попытка представить всю информацию в Internet в виде множества гипертекстовых документов, связанных между собой ссылками.
Web-страниц_ы в Internet можно разделить на статические и интерактивные. Содержимое первых не меняется с момента опубликования на сайте и до следующего их обновления Web-дизайнером. Этот тип страниц часто используют для online-афиш кинотеатров, картинных галерей, Internet-библиотек.
Интерактивные страницы генерируются по запросу пользователя программами, размещенными на стороне сервера. Подобное содержимое обычно используется для Internet-банкинга, почтовых ящиков с Web-доступом, поисковых систем.
Рассмотрим же подробнее, при помощи каких инструментов создается сегодняшнее многообразие Internet.
Основной язык Сети
Первая версия HTML вышла в 1990 году и была направлена на представление языка как такового, описание его возможностей и носила скорее рекомендательный характер. В 1995 появилась вторая версия, которая фиксировала практику использования конструкций языка, в 1996 - третья, призванная упорядочить все нововведения и согласовать их с существующей практикой. В текущей версии HTML 4.01 вводятся механизмы таблиц стилей, скриптов, кадров, внедренных объектов, а также улучшенная поддержка направления письма справа налево, более мощные таблицы и новые свойства форм.
HTML является языком разметки документа и гиперссылок. При считывании HTML-кода операторы-тэги (при просмотре странички не выводятся на дисплей) указывают браузеру, как показывать содержимое документов, включая текст, изображения и другие поддерживаемые типы данных.
Кроме того, этот язык позволяет связать ваш документ с другими посредством специальных гипертекстовых ссылок. Эти ссылки могут соединять между собой все странички вашего сайта, а также указывать на Internet-ресурсы других производителей.
Почти все тэги используются попарно, один из которых является открывающим, а другой - закрывающим (последний содержит слэш). Например, в строке "<HEAD> Заголовок документа </HEAD>" тэг <HEAD> является открывающим, а </HEAD> - закрывающим. Гиперссылка на другую страницу выглядит так: <A HREF="http://www.unix.com">OS UNIX</A>.
Гипертекстовый документ может содержать графические изображения, параграфы, списки, формы, горизонтальные линии, гиперссылки, текст, разбитый на области действия стилей (подчеркивание, выделение, курсив).
Для форматирования документа применяются каскадные таблицы стилей (CSS - Cascade Style Sheet), которые являются удобным механизмом для задания общего вида Web-документов, т. е. указания размера и цвета шрифта, отступа для целых фрагментов текста.
Несмотря на обилие возможностей, у языка HTML также есть свои ограничения. Он не является языком программирования в полной мере, и в то же время непригоден в качестве инструмента для редактирования текстов или настольной издательской системы. Его основная цель - это определить структуру и внешний вид документов в семействе так, чтобы они доставлялись пользователю из Сети быстро и легко, независимо от того, каким браузером он пользуется.
Однако не следует уделять слишком много внимания внешнему виду сайта, его содержание также немаловажно для пользователя. Кроме того, Web-дизайнеру часто нелегко в точности предсказать, каким будет видеть его сайт серфер, по причине существования множества браузеров от различных производителей. Поэтому, перед публикованием страницы в Web, желательно оценить ее внешний вид в нескольких разных браузерах.
Сценарии для Web-страниц
При помощи HTML можно определить внешний вид в окне браузера таких элементов, как текст, таблицы, изображения. Однако этот язык работает только со статическими элементами. Чтобы оживить страницу при помощи динамических элементов, дополнительно с HTML используются языки сценариев (scripting language), такие как JavaScript и VBScript.
Язык сценариев JavaScript был разработан в начале 90-х компанией Netscape и не имеет никакого отношения к платформо-независимому языку программирования Java, несмотря на созвучное название. JavaScript - наиболее часто используемый сегодня язык сценариев, который поддерживается всеми популярными браузерами.
VBScript (VisualBasic Script) был разработан компанией Microsoft и поддерживается только браузером MS Internet Explorer. Синтаксис VBScript подобен языку программирования Visual Basic, что облегчает изучение этого языка сценариев для тех, кто ранее работал с VB. Однако в браузерах Netscape и Opera код VBScript работать не будет.
Интерактивные возможности языков сценариев позволяют разработчику динамически управлять элементами Web-страниц. Например, можно сделать так, чтобы текст, отображаемый в поле формы, изменялся, когда пользователь щелкает на кнопке, или же заставить изменяться графическое изображение, когда над ним проводят курсором мыши. Сценарии состоят из операторов, интерпретация которых браузером приводит к выполнению требуемой функции. Их можно также выполнять прямо в строке адреса Internet-обозревателя. Например, если набрать фразу jаvаscript:dоcumеnt.writе("Нажмите эту кнопку") , то браузер отобразит слова "Нажмите эту кнопку" на экране.
Операторы языка сценариев могут быть добавлены в исходный код Web-страницы между дескрипторами <script>, там же задается язык используемого сценария - JavaScript или VBScript. В одном документе может содержаться любое количество сценариев, выполнение которых будет происходить при загрузке документа в браузер.
При помощи сценариев можно украсить страницу, придать ей некоторую интерактивность, но все равно содержание ее будет статическим, то есть не будет изменяться с момента ее создания.
Построение Web-приложений
Если вам приходилось когда-либо пользоваться услугами Internet-магазинов или заполнять регистрационную форму на сайте провайдера - значит вы имели в тот момент дело не с обычной статической страницей, а с интерактивным Web-приложением. Такое приложение похоже на обычную программу, за исключением того, что оно общается с пользователем через Web-браузер. Довольно часто для этого применяется платформа Common Gateway Interface (CGI).
Впервые поддержка CGI была осуществлена на сервере CERN в апреле 1994 года. А сегодня уже все популярные Web-серверы на платформе UNIX и Windows NT поддерживают CGI.
CGI-программа выполняется на сервере в ответ на запрос, сделанный пользователем. Сервер является посредником между Internet-браузером и CGI-модулем - он передает программе запрос браузера и затем возвращает информацию, выданную ею. Для создания CGI-приложений наиболее часто используются несколько языков программирования, на которых мы остановимся подробнее.
"Жемчужное" программирование
Perl является одним из старейших и наиболее популярных языков программирования, которые применяются в наши дни для создания CGI-приложений. Perl - это интерпретируемый язык, т. е. при изменении исходного кода программы ее не придется перекомпилировать, а нужно просто запустить еще раз. Perl также является языком высокого уровня, в его состав входят операторы, предназначенные для выполнения специальных задач. Например, в нем есть высокоразвитые средства для работы с текстовыми файлами.
Этот язык достаточно легок в освоении, в то же время Perl, как и другие интерпретируемые языки, отличается более низкой скоростью выполнения, чем языки, в которых исходный код компилируется. Ведь для последних не требуется запуск интерпретатора и генерирование исполняемого кода перед каждым выполнением программы.
Одним из главных факторов, обеспечивающих в настоящее время популярность языка Perl, является наличие библиотек, облегчающих программирование. Кроме того, в Сети есть много готовых CGI-программ, которые можно загрузить и использовать для своих нужд.
Язык для сисадминов
Для написания несложных программ, которые, как предполагается, должны взаимодействовать с приложениями операционной системы UNIX, можно применять язык оболочки UNIX, который называется Shell. Часто к этому прибегают системные администраторы UNIX, которым приходится по долгу службы практически каждый день использовать этот язык. Например, при помощи этого языка достаточно просто написать программный модуль, который будет вычислять среднюю загрузку Web-сервера.
Недостатком этого языка является то, что он предназначен для простых программ с несложной логикой. Для более сложных задач существуют более развитые языки.
Виртуальный змей
Python - это относительно новый интерпретируемый язык, реализованный на большей части современных операционных систем. Подобно Perl, он является языком общего назначения и широко применяется в различных областях информатики, а также в CGI-программировании. Python сочетает в себе многие преимущества интерпретируемых языков (такие как удобство разработки) с развитой логикой и структурой программ, которые присущи компилируемым языкам.
Одной из отличительных черт Python является возможность написания программ в стиле, близком к обычному языку человеческого общения (в случае Python - к английскому языку). Например, для правильного выполнения программы в качестве разделителей блоков используются пробелы.
Острова Ява во Всемирной сети
Программы на языке Java выполняются с помощью виртуальной машины Java (JVM), поэтому они не могут быть запущены непосредственно Web-сервером. По этой причине на языке Java нельзя написать CGI-приложение. Правда, можно написать вспомогательную программу на другом языке, которая будет запускать виртуальную машину, выполняющую Java-программу.
Однако более практичен другой путь. Web-приложения можно создавать при помощи Java-сервлетов (Java-servlet). Неологизм servlet происходит от слова server, и под этим термином подразумевается небольшой вспомогательный сервер. При поступлении запроса на выполнение сервлет запускает Java-программу и передает ее результат клиенту. Кроме того, немало серверов приложений используют Java в качестве языка программирования.
Альтернативные технологии
Во времена зарождения World Wide Web технология CGI была существенным шагом вперед. Это была первая платформа, позволявшая создавать действительно интерактивные динамические Web-страницы. В то же время ей были присущи некоторые ограничения, прежде всего - посредственная производительность. Ведь каждый раз, когда пользователь обращается к CGI-приложению, сервер должен запустить его, а это требует процессорного времени. Если программа написана на интерпретируемом языке, необходимо предварительно загрузить интерпретатор и транслировать ее исходный код.
Еще одна сложность технологии CGI - довольно сложная процедура разработки приложений. Помимо соблюдения правильности алгоритма работы программы необходимо, чтобы она корректно выводила текст HTML для Web-страницы.
Альтернатива HTML
Несмотря на то что в наши дни практически все Web-сайты в Internet созданы при помощи HTML, этот язык обладает определенными недостатками, главный из которых - отсутствие инструментов для структурирования документов. HTML совершенно не свойственна гибкость, ведь новые возможности становятся доступны только с выходом новой версии, а до этого приходится обходиться доступными средствами. В качестве одной из возможных альтернатив рассматривается язык XML (eXtensible Markup Language - расширяемый язык разметки), разработка которого началась в 1996 году, а первая версия вышла два года спустя.
По синтаксису XML немного похож на традиционный HTML, однако по сути - это разные языки. Прежде всего, XML - это очень гибкий язык. Если в HTML значение каждого тэга предопределено, то здесь все необходимые для описания страницы дескрипторы Web-дизайнер придумывает сам, фиксированного их набора не существует.
Между элементами XML существует строгая иерархия типа родительский - дочерний. Структурированность языка накладывает свои строгие ограничения. В XML каждому открывающему тэгу соответствует закрывающий, и вместе они формируют XML-элемент.
Помимо XML, разработчики могут применять целое семейство различных модулей для решения специализированных задач. Xlink описывает стандартный путь для добавления гиперссылок в XML- файл. Каскадные таблицы стилей CSS также применимы к XML, как и к HTML. Помимо CSS, в XML используется дополнительный язык для определения стилей, который называется XSL (eXtensible Style Language). Средства XSL позволяют не только форматировать, но и конвертировать XML-документ в практически любой вид - от форматов, используемых при описании текста, до звуковых и графических файлов.
Следует заметить, что на сегодня еще не все современные браузеры одинаково трактуют XML и XSL, а некоторые их вообще пока не поддерживают. В этой связи можно прогнозировать, что в ближайшее время HTML не сдаст свои позиции, хотя уже появились Web-сайты, полностью написанные на XML. В то же время, не исключено, что благодаря XML обычный HTML превратится в XHTML. Этот новый язык содержит много элементов HTML, но синтаксис его немного изменен в соответствии с правилами XML.
/td>
|
|
Новые технологии направлены на решение вопросов, возникающих в CGI. Они увеличивают производительность, передавая запрос непосредственно серверу, не заставляя его вызывать внешнее приложение каждый раз, когда пользователь обратится к Web-странице. Кроме того, автоматизируются многие задачи. Большим преимуществом альтернативных технологий является то, что они специально разработаны для обеспечения доступа к реляционным базам данных. Ведь эта функция является одним из самых слабых мест CGI.
Среди альтернативных платформ, которые со временем могут заменить CGI, можно выделить MS ASP, Allaire Cold Fusion, Java Server Pages и PHP. И хотя этим список далеко не ограничивается, среди вышеуказанных рассмотрим ASP и PHP.
Детище Microsoft
В технологии Active Server Pages для создания Web-приложений используются три основных составляющих: HTML, программы и компоненты ActiveX. Для разработки программ используются языки VBScript и JavaScript (версия Microsoft), кроме того поддерживается Activeware PerlScript, что позволяет применять код на Perl.
При первой загрузке Web-страницы компилируется программа, и результат сохраняется до тех пор, пока исходный текст не изменится. Потом программа перекомпилируется и записывается вновь. Благодаря кэшированию, в данной технологии решена проблема низкой производительности, присущая CGI.
Дары от GNU
Разработка PHP была начата в 1994 году Расмусом Лерфордом. Впоследствии этот язык претерпел три редакции и к концу 2001 года использовался почти в 8 млн доменов во всем мире. Аббревиатура PHP первоначально означала Personal Home Page. Но потом PHP стали расшифровывать как PHP Hypertext Preprocessor в соответствии с рекурсивными правилами, принятыми в GNU.
Основной текущей версией PHP является четвертая. PHP теперь можно использовать не только как модуль сервера Apache, но и в виде модуля ISAPI для MS Internet Information Server. PHP обладает многими достоинствами, среди которых высокая производительность, встроенные библиотеки для выполнения многих общих задач, связанных с Web, а также низкая стоимость и открытый исходный код. Помимо встроенной поддержки СУБД MySQL (которая также распространяется бесплатно), PHP может также подключаться к базам Oracle, Informix, InterBase, Sybase, mSQL и другим.
Общее количество языков программирования, применяемых в Web, не ограничивается вышеописанными и увеличивается с каждым годом. И то, что сегодня используется в мире сайтостроения повсеместно, через несколько лет может уйти в архив истории, как это уже произошло с предыдущими Internet-технологиями.
|