Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #27, ФЕВРАЛЬ 2003 г.

ВСЯ ПРАВДА ОБ ASP

Pony (pony@xakep.ru)

Спецвыпуск Xakep, номер #027, стр. 027-056-2


1) PHP совершенно бесплатен (камень в огород MS);

2) как язык программирования PHP существенно проще конкурентов. Чтобы начать кодить на нем, нужно быть знакомым только с общим синтаксисом, который сам по себе предельно прост.

Не вдаваясь подробно в архитектуру PHP, расскажу про его недостатки:

1) Нулевая расширяемость системы. Добавить реализацию новых функций можно только, переписав и перекомпилировав сам анализатор. Правда, встроенных функций PHP тебе может хватить на всю жизнь.

2) Низкая масштабируемость системы. Именно это определяет тормознутость систем на PHP в условиях высокой загрузки. Хотя одиночные скрипты на PHP могут пахать быстрее их аналогов, например, на ASP.

3) Используемая обычно связка PHP+MySQL лишена возможности осуществлять, например, транзакции. Это, конечно, недостаток MySQL, но кто же будет использовать бесплатный PHP с MSSQL (платным) или, например, с Oracle (очень дорогим)?

Microsoft, почекав все недостатки CGI'шек, намутила свою архитектуру - ISAPI (Internet Server Application Programming Interface). Вместо исполняемых файлов в ISAPI используются DLL-библиотеки. В ISAPI существуют два вида DLL-библиотек: ISAPI-расширения и ISAPI-фильтры. Так, например, поддержка PHP в Internet Information Server (рис. 1) реализована с помощью ISAPI-фильтра. В ISAPI пофиксили траблы CGI-приложений: ISAPI-расширения и ISAPI-фильтры загружаются вместе с загрузкой сервера и, как правило, выполняются в процессе сервера. И поддержка ASP в Internet Information Server реализована тоже с помощью ISAPI-расширения. За нее отвечает asp.dll, которая лежит в C:\WINNT\System32\inetsrv\ (рис. 2).

ЧТО ТАКОЕ ASP И С ЧЕМ ЕГО ЕДЯТ

ASP (Active Server Page) язык сценариев, придуманный Microsoft. Поддерживаются 2 языка написания сценариев VBScript (Visual Basic Scripting Edition) и Jscript. Реальное распространение получил только VBScript. И все скрипты, которые ты можешь найти в сети, написаны на VBScript. Как отличить asp-код в файле? Очень просто: все блоки кода начинаются с <% и заканчиваются %>. Есть еще один экзотический способ: блок кода начинается с <script language="VBScript(JScript)" RunAt="Server"> и заканчивается </script>. Но я встречал только первый вариант. Файлы, содержащие исполняемый код, имеют расширение .asp. Кроме кода на VBScript, эти файлы могут содержать обычный html-код и SSI-инструкции. Важно помнить, что SSI-инструкции исполняются раньше asp-кода.

Как же работает asp-прога? Когда сервер обращается к ASP-анализатору, последний проводит синтаксический анализ файла, а затем подключает все внешние файлы. Далее, отыскивая разделители сценариев, он собирает все программные части. Все элементы, не относящиеся к сценариям, ASP-анализатор воспринимает как строки, которые он пересылает клиенту без изменений. Затем анализатор создает переменные и внешние компоненты, определенные в сценарии. Только после этого происходит интерпретация сценария (блоковое или построковое выполнение команд), и результат возвращается серверу для отправки клиенту. Завершив обработку сценария, анализатор удаляет из памяти созданные для него переменные и внешние компоненты.

Назад на стр. 027-056-1  Содержание  Вперед на стр. 027-056-3