RSS

Компьютерная терминология    1_9  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  .....  A  Б  В  Г  Д  Ж  З  И  К  Л  М  Н  О  П  Р  С  Т  У  Ф  Х  Ц  Ч

Языки разметки серверных скриптов

   

Cредa разработки



Консультация юриста
Ваш регион:
Ваше имя:

Ваш телефон

(можно сотовый)

Ваш вопрос (можно кратко)


 
Языки разметкиВ начале февраля 1998 года международная организация W3C утвердила спецификацию "Extensible Markup Language (XML) 1.0", которая положила начало разработке множества новых языков разметки для передачи информации через Интернет на основе стандарта XML. По сути дела, это означало новый шаг в развитии языков гипертекстовой разметки. За четыре года своего существования XML не только привлек к себе довольно значительное внимание со стороны как обыкновенных пользователей, так и множества веб-дизайнеров, но и стал неотъемлемой чатью Интернета. Уже сегодня практически не существует серверов, которые в той или иной степени не использовали бы эту технологию как аналог HTML. Однако говорить о том, что XML именно сейчас становится основным способом трансляции гипертекста через глобальную сеть, пока еще по крайней мере преждевременно. Сам язык еще достаточно молод, и некоторые его элементы до сих пор находятся в стадии разработки. Пока что создан лишь общий каркас того, что, возможно, в будущем заменит Html, но в каком конкретно виде это будет - пока сказать невозможно.

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

По большому счету, именно невероятная популярность World Wide Web и ее неотъемлемой части, HTML, безусловно, стала причиной крайне повышенного внимания к структурам гипертекстовой разметки документов.

Впервые понятие гипертекста было введено В.Бушем еще в 1945 году. Однако реальные приложения, использующие подобные структуры данных, стали использоваться только начиная с 60-х годов, а поистине необычайный всплеск активности вокруг этой технологии начался лишь тогда, когда возникла реальная необходимость в механизме объединения множества информационных ресурсов, обеспечения возможности создания, просмотра нелинейного текста. И примером реализации этого механизма послужила та самая паутина WWW.

Непосредственно язык разметки документов - это набор специальных инструкций, называемых тэгами (в некоторых переводных изданиях тэги называют ярлыками), предназначенных для создания в документах какой-либо структуры и определения отношений соответственно между различными элементами этой структуры. Тэги языка разметки, или, как их иногда называют, управляющие дескрипторы, в таких документах кодируются совершенно определенным образом, выделяются относительно основного содержимого документа, после чего служат в качестве инструкций для программы, производящей интерпретацию и показ содержимого документа, собственно говоря, тому, кто его просматривает, если пытаться найти аналогии с Интернетом, то этим некто является клиент, а программой-интерпретатором в самом распространенном случае является броузер). Уже в самых первых системах для обозначения этих команд было решено использовать символы "<" и ">", внутри которых помещать названия инструкций и их параметры. На сегодняшний день такой способ обозначения тэгов является общепризнанным стандартом.

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

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

SGML

SGML (Standard Generalized Markup Language) был официально принят в 1986 году в качестве международного стандарта (ISO 8879:1986) для описания независимых от устройств ввода/вывода и от вычислительной среды методов представления текстовой информации в электронной форме. Основой для его создания послужил довольно старый язык разметки GML(Generalized Markup Language), разработанный компанией IBM еще во времена первых персональных копьютеров. Если быть точным, то SGML - это метаязык, предназначенный для описания других языков разметки.

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

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

SGML, в отличие от всех других языков разметки, созданных на его основе, использует принцип так называемой описательной разметки вместо процедурной. Подобная система использует элементы разметки, которые попросту предоставляют названия для отнесения отдельных частей документа к определенным категориям. Другими словами, тэги, такие как <para> или \end{list}, просто идентифицируют порцию документа и утверждают, что "эта часть является параграфом" или что "эта часть является концом начатого списка", и т.п. Система же, использующая процедурную разметку (сюда попадают текстовые процессоры, например, Microsoft Word) определяет, какая непосредственно обработка будет выполняться в конкретной точке текстового документа: "в этом месте вызвать такую-то процедуру с параметрами 5, е и z" или "передвинуть границу документа на 7 мм правее относительно какого-либо элемента, пропустить одну строку начать следующую с красной строки" и т.д. В SGML инструкции, которые необходимы для обработки документа с определенной конкретной целью (например, для форматирования), четко отделяются от описательной разметки, которая встречается внутри документа. Обычно они собраны вне документа в отдельных процедурах или программах.

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

SGML вводит также понятие типа документа, и, соответственно, способы его определения (document type definition, DTD). Документы считаются типизированными, так же как и другие обрабатываемые компьютерами объекты. Тип документа формально определяется его составными частями и их структурой. Скажем, можно определить тип документа таким образом, что он должен состоять из заголовка и, возможно, имени автора, за которыми следует аннотация и последовательность одного или более абзацев. Любой документ в отсутствие заголовка, в соответствии с этим формальным определением, не будет являться отчетом, так же как не будет им являться и последовательность абзацев, за которой следует аннотация, невзирая на то, насколько похож на отчет такой документ с точки зрения читателя-человека.

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

SGML, как метаязык, позволяет определять конкретные языки (часто называемые "приложениями SGML"), ориентированные на конкретное применение. Пример тому - язык HTML, широко использующийся на WWW. Каждый такой язык описывается в виде DTD, определяя элементы и их атрибуты. Получив такой DTD, программное обеспечение для работы с SGML может корректно обрабатывать документы, написанные в соответствии с этим DTD.

HTML

Даже в проекте этот язык задумывался специально для реализации той модели передачи информации в глобальную сеть, которую мы имеем сейчас. Другими словами HTML - это порождение Интернета. Хотя, по сути дела, HTML является упрощенной версией стандартного общего языка разметки - SGML (Standart Generalised Markup Language), который был утвержден ISO в качестве стандарта еще в 80-х годах прошлого столетия. SGTML - это не язык в чистом виде, а скорее набор каких-то правил и описаний для создания других языков, он определяет допустимый набор тэгов, их атрибуты и внутреннюю структуру документа. Контроль за правильностью использования дескрипторов осуществляется при помощи специального набора правил, называемых DTD-описаниями, которые используются программой-интерпретатором клиента при разборе документа. Для каждого класса документов определяется свой набор правил, описывающих грамматику соответствующего языка разметки. С помощью SGML можно организовывать информацию, содержащуюся в документах, описывать структурированные данные, представлять эту информацию в некотором стандартизованном формате для последующего использования. Однако ввиду некоторой своей сложности, SGML использовался, в основном, для описания синтаксиса других языков (наиболее известным из которых является HTML), и немногие приложения работали с SGML-документами напрямую.

HTML - язык значительно более удобный и простой в использовании, чем SGML. Он не позволяет определять дополнительные языки на своей основе. Использование HTML предполагает разметку документа по стандарту, который определяется довольно ограниченным набором инструкций или тэгов. Такие инструкции предназначаются, в первую очередь, для управления процессом вывода содержимого документа на экране программы-клиента и тем самым для определения способа представления документа, но не его целостной структуры. В большинстве случаев данные HTML представляются в обычном текстовом файле, который можно легко передавать по сети с использованием протокола http.

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

<font color="red">rose</font>,

программа просмотра будет знать, каким цветом отобразить текст, содержащийся внутри тэгов <font></font> и, вероятнее всего, отобразит его правильно, но ей абсолютно безразлично, в каком месте документа встретился этот тэг, в какие другие тэги заключен текущий фрагмент, существуют ли вложенные в него фрагменты, правильно ли построены отношения между объектами. Такое "безразличие" к структуре документа приводит к тому, что поиск или анализ информации внутри него ничем не будет отличаться от работы со сплошным, не разбитым на элементы текстовым файлом. А это, как известно, не самый эффективный способ работы с информацией.

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

Подводя итог всему сказанному, можно утверждать, что HTML уже сегодня не удовлетворяет в полной мере требованиям, предъявляемым современными разработчиками к языкам подобного рода. И ему на смену был предложен новый язык гипертекстовой разметки: мощный, гибкий, удобный язык XML.

XML

XML (Extensible Markup Language[1]) - это язык разметки, описывающий целый класс объектов данных, называемых XML-документами. Этот язык используется в качестве средства для описания грамматики других языков и контроля за правильностью составления документов. Т.е. сам по себе XML не содержит никаких тэгов, предназначенных для разметки, он просто определяет порядок их создания. Таким образом, если, например, мы считаем, что для обозначения элемента rose в документе необходимо использовать тэг <flower>, то XML позволяет свободно использовать определяемый нами тэг, и мы можем включать в документ фрагменты, подобные следующему:

<flower>rose</flower>

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

<conservatory>
<flower>rose</flower>
</conservatory>

Если мы хотим посадить туда еще несколько цветочков, то должны внести следующие изменения:

<conservatory>
<flower>rose</flower>
<flower>tulip</flower>
<flower>cactus</flower>
</conservatory>

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

Еще одним из очевидных достоинств XML является возможность использования его в качестве универсального языка запросов к хранилищам информации. Сегодня в глубинах W3C находится на рассмотрении рабочий вариант стандарта XML-QL(или XQL), который, возможно, в будущем составит серьезную конкуренцию SQL. Кроме того, XML-документы могут выступать в качестве уникального способа хранения данных, который включает в себя одновременно средства для разбора информации и представления ее на стороне клиента. В этой области одним из перспективных направлений является интеграция Java- и XML-технологий, позволяющая использовать мощь обеих технологий при построении машинно-независимых приложений, использующих, кроме того, универсальный формат данных при обмене информацией.

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

Также одним из достоинств XML является то, что программы-обработчики XML-документов несложны, и уже сегодня свободно распространяются всевозможные программные продукты, предназначенные для работы с XML-документами. XML поддерживается сегодня во всех броузерах семейства Microsoft Internet Explorer, начиная с версии 4.0. Было заявлено о его поддержке в последующих версиях Netscape Communicator, СУБД Oracle, DB-2, в приложениях MS-Office. Все это дает основания предполагать, что, скорее всего, в ближайшем будущем XML станет основным языком обмена информации для информационных систем, заменив собой, тем самым, HTML. На основе XML уже сегодня созданы такие известные специализированные языки разметки, как SMIL, CDF, MathML, XSL, и список рабочих проектов новых языков, находящихся на рассмотрении W3C, постоянно пополняется.

Как выглядит XML-документ?

Если вы знакомы с HTML, изучение XML не потребует от вас особых усилий. Хотя XML, безусловно, сильно отличается по своим возможностям и предназначению от языка гипертекстовой разметки, оба эти языка являются подмножествами SGML, и, следовательно, наследуют его базовые принципы.

Структура документа

Простейший XML-документ может выглядеть так, как это показано в Примере 1

<?xml version="1.0"?>
<list_of_items>
<item id="1"><first/>Первый</item>
<item id="2">Второй <sub_item>подпункт 1</sub_item></item>
<item id="3">Третий</item>
<item id="4"><last/>Последний</item>
</list_of_items>

Обратите внимание на то, что этот документ очень похож на обычную HTML-страницу. Так же, как и в HTML, инструкции, заключенные в угловые скобки, называются тэгами и служат для разметки основного текста документа. В XML существуют открывающие, закрывающие и пустые тэги (в HTML понятие пустого тэга тоже существует, но специального его обозначения не требуется).

Тело документа XML состоит из элементов разметки (markup) и непосредственно содержимого документа - данных (content). XML-тэги предназначены для определения элементов документа, их атрибутов и других конструкций языка. Более подробно о типах применяемой в документах разметки мы поговорим чуть позже.

Любой XML-документ должен всегда начинаться с инструкции <?xml?>, внутри которой также можно задавать номер версии языка, номер кодовой страницы и другие параметры, необходимые программе-анализатору в процессе разбора документа.

Правила создания XML-документа

В общем случае XML-документы должны удовлетворять следующим требованиям:

- В заголовке документа помещается объявление XML, в котором указывается язык разметки документа, номер его версии и дополнительная информация.

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

- В XML учитывается регистр символов.

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

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

- Вся информация, располагающаяся между начальным и конечными тэгами, рассматривается в XML как данные, и поэтому учитываются все символы форматирования (т.е. пробелы, переводы строк, табуляции не игнорируются, как в HTML).

Если XML-документ не нарушает приведенные правила, то он называется формально-правильным и, все анализаторы, предназначенные для разбора XML-документов, смогут работать с ним корректно.

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

<country><title>Russia</title><city> <title>Novosibirsk</country></title></city>

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

На сегодняшний день существует два основных способа контроля правильности XML-документа: DTD-определения(Document Type Definition) и схемы данных(Semantic Schema). Более подробно об использовании DTD и схемах мы поговорим в следующий раз. В отличие от SGML, определение DTD-правил в XML не является необходимостью, и это обстоятельство позволяет нам создавать любые XML-документы, не ломая пока голову над весьма непростым синтаксисом DTD.

Основной принцип

Элемент - это основная структурная единица XML-документа. Заключая слово rose в в тэги <flower> </flower> , мы определяем непустой элемент, называемый <flower>, содержимым которого является rose. В общем случае в качестве содержимого элементов могут выступать как просто какой-то текст, так и другие, вложенные, элементы документа, секции CDATA, инструкции по обработке, комментарии, - т.е. практически любые части XML- документа.

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

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

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

В XML-документе, как правило, определяется хотя бы один элемент, называемый корневым, и с него программы-анализаторы начинают просмотр документа. В приведенном примере этим элементом является <country>.

В некоторых случаях тэги могут изменять и уточнять семантику тех или иных фрагментов документа, по-разному определяя одну и ту же информацию и тем самым предоставляя приложению-анализатору этого документа сведения о контексте использования описываемых данных. Например, прочитав фрагмент <city>Holliwood</city>, мы можем догадаться, что речь в этой части документа идет о городе, а вот во фрагменте <restaurant>Holliwood</restaurant> - о забегаловке.

Заключение

Язык форматирования Web-страниц HTML изначально вводился как приложение SGML. Позже, с бурным развитием WWW, HTML начал всячески расширяться с целью дать автору больший контроль над внешним представлением информации. Новые элементы и атрибуты, такие как <FONT> или <BGCOLOR>, ориентировались на визуальное форматирование. Появились и стали активно использоваться средства, не входящие собственно в язык разметки: imagemaps, Java и JavaScript, plugins, и прочее. Много появилось также элементов HTML, поддерживаемых только определенным броузером, или по-разному работающих в разных броузерах. Поэтому сейчас уже сложно утверждать, является ли HTML приложением SGML или нет. Очень немногие страницы создаются в соответствии со спецификациями на HTML и соответствующими DTD.

Эту проблему отчасти призваны облегчить каскадируемые стили, стандарт на которые принят W3-консорциумом. CSS1 отделяет стиль, задающий визуальное представление элементов, от разметки элементов.

Большой интерес представляет язык XML, предположительно идущий на смену HTML в качестве языка разметки Web-cтраниц. Это - вариант SGML, ориентированный в первую очередь на применение на WWW. Он не требует обязательного наличия DTD, упрощен и сам язык за счет редко используемых сложных конструкций. Это позволит сделать простыми анализаторы, что сделает возможным активное применение XML в броузерах. (Вероятность чего довольно велика, учитывая реверансы обоих основных игроков на поле броузеров в сторону XML).


30.09.2003Три кита веб-разработки

В настоящее время существует множество сред разработки приложений для веб-серверов, из которых несомненными лидерами являются ASP, CGI и PHP. Есть и другие, но согласитесь, что среди расширений URL’ов со скриптовым контентом чаще всего встречаются именно .asp, .cgi, и .php, и вероятно, что человек, решивший заняться разработкой веб-сервера, воспользуется именно одной из них. Практически на любом форуме, посвященном сетевому программированию, можно отыскать как профессиональные обсуждения, так и эмоциональные споры поклонников той или иной из этих сред1. Вместе с тем часто проскальзывают вопросы на тему: какой из них лучше воспользоваться для решения той или мной задачи. Задачей авторов статьи было не определить «лучшего из лучших», а скорее сделать небольшой обзор достоинств и недостатков каждой из технологий. Выбор начинающий разработчик должен сделать сам в зависимости от поставленной задачи.

CGI

Common Gateway Interface был разработан в NCSA (Центр суперкомпьютерных приложений Иллинойского университета) в 1993 году и своим рождением обозначил новую эпоху в истории WWW. Почему, наверное, объяснять незачем, достаточно напомнить, что все скриптовые элементы от стеков графических гипертекстовых ссылок и встраивания даты в текст документов до форумов, чатов и гостевых книг стали доступны Интернет-сообществу именно с появлением «шлюзового интерфейса».

По своей сути CGI отличается от ASP и PHP, поскольку сам не является языком как таковым и не подразумевает использования ограниченного набора языков. Теоретически скрипт для CGI можно написать чуть ли не на любом из существующих языков программирования или даже на командном. На практике же абсолютное большинство CGI-программистов используют Perl.

Многие могли бы возразить: не такой уж CGI и «лидер». Действительно, славные денечки остались позади, и использование технологии уже считается в некоторых программистских коллективах (может быть, незаслуженно) признаком дурного тона. Однако что может лучше подойти под пример большого Интернет-проекта, чем поисковые системы, а многие из них используют CGI (например, Rambler, Lycos). В сочетании, скажем, с Perl’ом «интерфейс» до сих пор можно назвать одним из лучших средств разработки. Он позволяет легко справиться с простыми узлами с низким уровнем трафика (так как запускается отдельная копия приложения). Неслучайно большинство счетчиков и баннерных сетей написано именно на CGI. Кроме того, CGI часто является единственной скриптовой средой2, разрешенной большинством бесплатных хостеров.

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

ASP
Разработчик: Microsoft
Платформы: Win32
Механизм: встроенный модуль для Web-сервера
Web-сервера: IIS
Расширения файлов: asp
Мощная технология, усиленно продвигаемая Microsoft. Жаль только, что работает она в полную силу только на продуктах того же Microsoft. Синтаксис скриптов напоминает VBScript/VBA. Интеграция с операционной системой гораздо более тесная, чем в других технологиях, что позволяет вытворять на ASP такие вещи, которые, пожалуй, невозможны с помощью других языков. Поддерживает работу с базами данных.

В далеком 1996 году корпорация Microsoft во всеуслышание объявила о выпуске принципиально новой сетевой технологии Active Server Pages. Продукт представлял собой новый подход к написанию серверных скриптов. Такие достоинства ASP, как использование сессий вместо запуска отдельной копии приложения (как в CGI), доступ к базам данных с помощью специального объекта ADO (Active Data Object), являющимся надстройкой над OLE-DB, программирование скриптов на относительно «легких» Jscript и VBScript, позволяли Microsoft надеяться на скорую кончину конкурентов-аналогов. Сейчас, спустя семь лет, уже ясно, что этим надеждам было не суждено сбыться. Расширение .asp явно уступает по частоте появления в Сети тем же .cgi, и .php. Тем не менее технология нашла свою нишу среди разработчиков — в частности, благодаря тому, что ASP встроена в Microsoft Internet Information Server, начиная с версии 4.0, то есть используется на Windows-платформе. В то же время существует обратная сторона медали: первоначально ASP не поддерживалась серверами на Unix/Linux-платформе, что помешало ее широкому распространению. Созданные позднее версии для других платформ кардинально не изменили сложившуюся ситуацию — ASP осталась технологией только «для своих».

Кроме вышеупомянутых плюсов, ASP на сегодняшний день имеет и другие изюминки. Во-первых, поддержку ActiveX, компоненты которого разрабатываются с помощью отдельно поставляемого Visual Studio, имеющего в своем составе Visual C++, Visual J++ и Visual Basic, и могут вызываться из ASP-кода. Здесь следует отметить особую роль MS Visual Basic, который так активно продвигает Microsoft, используя в качестве инструмента практически во всех своих продуктах. Это один из немногих языков, где простота оптимально сочетается с мощностью. Интегрированная среда разработки (Integrated Development Environment — IDE) Visual Basic, средство контроля исходного кода — Visual Source Safe, а также хороший отладчик делают Visual Basic едва ли не самым мощным языком для создания веб-приложений. Однако нужно учитывать, что при владении Visual Basic освоение его потомка VBScript (который, правда, как утверждают некоторые специалисты, по некоторым параметрам хуже JScript) труда не составит. Во-вторых, наличие средств отслеживания состояния и пользователей в объектах, позволяющее создавать динамические приложения. В-третьих, приложения ASP наряду с другими, входящими в состав Microsoft IIS, способны выполняться в одном адресном пространстве, что повышает эффективность и масштабируемость благодаря отсутствию лишних затрат памяти. Впрочем, последнее достоинство — спорное, так как в определенных случаях глюк в «неизолированном» приложении может вывести из рабочего состояния весь сервер.

Резюме: При работе с технологиями MS (скажем, Internet Information Server, ODBC, ActiveX) использование ASP достаточно, но не необходимо. То есть в принципе можно воспользоваться и другими технологиями (например, PHP показывает неплохие результаты как в Apache, так и в IIS), но, разумеется, ASP здесь более эффективен, хотя бы потому, что MS для него — естественная среда обитания; к тому же MS Visual Studio предоставляет огромные дополнительные возможности. Использовать же его на других платформах нецелесообразно (в частности, потому, что при реализации ASP-серверов применялась COM-технология записи в системный реестр — чисто «форточная» особенность говорит о многом). Это довольно четко ограничивает область применения ASP.

Подведя итог вышесказанному, ASP можно однозначно порекомендовать для разработки сложных приложений на платформе MS Windows (IIS) с использованием технологий COM, DCOM, ActiveX и т. д.

P.S.Plus

Все перечисленные прелести принадлежат «классическому» ASP, а больший интерес вызывают его эволюционные формы, самая известная из которых — ASP.NET (в девичестве — ASP+). В настоящее время раскрутку этой технологии, как, впрочем, и других под индексом .NET, Microsoft ведет очень интенсивно. По сути дела, от старой доброй ASP осталась лишь некоторая синтаксическая совместимость, а похожа она на ASP.NET не больше, чем Turbo Pascal на Delphi. Появление ASP.NET можно расценить, прежде всего, как удачную попытку интеграции технологии ASP в WSYIWYG-редакторы, открывшей новый спектр возможностей для разработки веб-интерфейса. Примерами таких редакторов могут служить простенький полуторамегабайтный ASP.NET Web Matrix (для работы, правда, необходим еще и NET. Frame Work, а это еще около 20 Мбайт) или Visual InterDev. Релизы редакторов выходят с завидным постоянством и, по всей видимости, пользуются спросом, так как количество Интернет-проектов, выполненных на основе ASP.NET, неуклонно растет.

PHP
Платформы: Win32, Linux
Механизм: отдельная CGI-программа, модуль Web-сервера
Web-сервера: IIS, Apache
Расширения файлов: php, php3, phtml
Весьма популярная технология во многом благодаря своей бесплатности. Язык скриптов напоминает своим синтаксисом язык C. Имеется множество дополнительных библиотек для работы с различными базами данных, с документами PDF, с GIF-файлами. Часто PHP увязывается в одно с такой же бесплатной базой данных как MySQL. Сущетвует множество провайдеров, предоставляющих хостинг со связкой Apache/PHP/MySQL. в настоящее время разработчики PHP утверждают, что этот язык используется на 1.000.000 узлах.

Professional Home Page был создан в 1994 году Расмусом Лердорфом как любительский проект для частных нужд, но неожиданно он завоевал популярность и после некоторой доработки и расширения функциональности стал настоящим стандартом среди языков разработки сценариев, внедряемых в HTML. Синтаксис PHP во многом заимствован из C, Java и Perl. Замечательной функцией PHP является работа со многими типами баз данных: помимо ODBC поддерживаются также MySQL, Oracle, dBase, Informix и многие другие. Кроме того, от других языков аналогичной направленности PHP отличается тем, что все его модули выполняются в едином адресном пространстве3, благодаря чему повышается скорость работы приложения.

Родная среда для PHP все же — Linux/Apache. С одной стороны, это позволяет технологии пользоваться всеми преимуществами Open Source — ни одна веб-технология не имеет такой поддержки со стороны юзеров, активно сотрудничающих с разработчиками языка. Возможно, именно поэтому в PHP нет серьезных багов. Но с другой стороны, работа с Unix/Linux требует больше профессиональных навыков, нежели с Windows. Спасением для «нелинуксоидов» является возможность PHP функционировать и под Windows-платформой. Естественно, IIS в чистом виде никакого PHP не поддерживает. Здесь приходится мудрить с дополнительными dll’ами. В Сети лежит множество пакетов, позволяющих решить эту проблему самыми разными способами.

PHP бурно развивается, впитывая в себя все лучшее, что есть в других технологиях, например вслед за ASP в PHP тоже появились «сессии». Триумфальное шествие языка началось с 4-й версии, которая вышла в 2000 году. Сейчас из Интернета можно скачать пятую бета-версию. Вообще, на платформе Unix/Linux самой распространенной является связка Apache+PHP+MySQL (в определенных кругах — даже стандарт де-факто) против IIS+ASP+ ODBC на Windows-платформе.

Резюме: Само название языка — Professional Home Page, казалось бы, однозначно сегментирует область применения этой технологии. Может быть, так и было после выхода первой версии, но сейчас, на наш взгляд, название не полностью соответствует истине. Безусловно, для написания серверных скриптов в своей домашней странице и по сей день язык прекрасно подходит, но последние версии получили гораздо более широкое применение. К примеру, среди разработчиков бытует мнение, что лучше всего чат или сетевой магазин писать на PHP. Характерной особенностью является и то, что по скорости обработки SQL-запросов связка PHP+MySQL выше других технологий на порядок, однако MySQL для хранения достаточно больших объемов данных не предназначен. Для регистрации же пользователей сайта, хранения песен в хит-параде или ведения учета скаченной литературы MySQL’а вполне достаточно.
Приговор: Технология практически идеальна для разработки развлекательного или е-коммерческого проекта (к примеру, магазина).

1 Да что там на форумах! Пока статья писалась, авторы раза два переругались по поводу личных пристрастий, что в конце концов обеспечило (надеемся!) объективность материала. — Р.Н.
2 Есть, конечно, бесплатный хостинг только с PHP или ASP, но его (по крайней мере, в Рунете) несравнимо меньше. — Р.Н.
3 Причем работа идет быстрее, чем в ASP, так как в последнем работу тормозит использование COM-объектов. — К.А.


Языки серверных скриптов
В последнее время Web-узлы перестают быть просто набором страниц и картинок. Все чаще создаются узлы, которые взаимодействуют с посетителем, выполняют какие-то действия, собирают данные, ведут подсчеты, самонастраиваются под предпочтения посетителя. Вcе меньше Web-узлы становятся похожими на статическую библиотеку страниц, и превращаются в целые программные системы, связанные с базами данных. Все чаще можно встретить объявления Web-студий, приглащающих помимо Web-дизайнеров и администраторов еще и Web-программистов.
Для того, чтобы простая HTML-страница ожила, существует несколько технологий. Первое деление связано с местом осуществления этого оживления: на сервере или на клиенте. Далее деление ведется по методу программирования: с использованием интерпретируемых скриптов или откомпиллированных программ. Вышеизложенное можно представить в виде следующей таблицы:

Сторона клиента Сторона сервера
Скрипты Программы Скрипты Программы
  • JavaScript
  • JScript
  • VBScript
  • Plug-ins
  • ActiveX
  • Java applets
  • Perl
  • Tcl
  • командная оболочка (shell)
  • отдельные CGI-программы
  • модули сервера
  • ISAPI/NSAPI
  • ActiveX
  • Java servlets

Серверные скрипты, о которых речь пойдет в данной статье, относятся к серверной части, но стоят особняком, так как сочетают в себе свойства как скриптовых языков, так и программ.
Основное отличие от CGI-скриптов (которые пишутся чаще всего на языке Perl, а иногда на Tcl и даже на языке командных оболочек bash/tcsh) и от CGI-программ (которые пишутся на языках высокого уровня от C/C++ до Basic-a) – это то, что в CGI-программах вы сами пишете выводимый HTML-код, а используя язык серверного скрипта, вы встраиваете свою программу в готовую HTML-страницу, используя открывающий и закрывающий теги.
Отличие серверного скрипта от JavaScript, VBScript или JScript, как можно догадаться, состоит в том, что серверный скрипт выполняется на сервере, а клиенту передается результат работы, тогда как в JavaScript-код полностью передается на клиентскую машину и только там выполняется.
Ваша страница в этом случае представляет собой смесь HTML-кода с кодом программы. Процесс схож с тем, как работает SSI (Server Side Includes). Web-сервер настраивается таким образом, что файлы-страницы с определенным расширением (asp/php/cfm) не отправляются сразу клиенту, а перед отправкой пропускаются через обработчик, который производит разбор страницы и выполняет операции, в ней записанные. Таким образом клиенту выдается не та страница, которая хранится на сервере, а страница созданная на лету по результатам выполнения программы. Как видите, связка состоит из двух звеньев: скриптов в HTML-странице и обработчика, который представляет собой либо отдельную программу, либо для увеличения скорости работы встраивается в виде модуля в Web-сервер.
Преимущества:

seo & website usability   inet   os faq   hardware faq   memory   video   cpu   hdd   mainboard faq   printer & scaner   modem   mobiles   hackzone

Технологии поискового маркетинга
Практика поискового маркетинга
Flash
Тэги
XML
DHTML
PHP
MySQL
WebMail
.NET
VBScript
CGI
Графические форматы Интернета
WEB-сайт шаг за шагом
CMS faq
FRAME faq
CSS faq
SSI faq
RSS faq
WAP faq
Web-Designed
Webhints
Файл настроек .htaccess
Настройка robots.txt

po gonn © 2005 "JULI'S BEEHIVE"