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

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

Pony (pony@xakep.ru)

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


Йоу, мэн, ты решил научиться программировать под web :)! Решил, но не знаешь, за что хвататься. Ты часто слышишь об ASP, слышишь много хорошего и много плохого. Работодатели требуют знания ASP, а ты не знаешь, ни что это за зверь, нужно тебе оно или нет, а главное, с чего начать. Сейчас я познакомлю тебя с технологией ASP и столкну ее с конкурентами лбами.

CGI VS СЦЕНАРНЫЕ ЯЗЫКИ

Начнем от пращуров. Самым первым решением для генерации динамических web-страниц были CGI-приложения. CGI-приложение - это программа (обычно написанная на Perl или C/С++), которая запускается по запросу клиента и формирует содержание web-страницы. Преимущества метода заключаются в скорости выполнения приложения (особенно если оно написано на C/С++ и откомпилировано) и прекрасной расширяемости системы (добавлять в систему новые функциональные возможности легко и приятно). Написал скрипт, скопировал в нужный каталог, выставил permission-ы, и все заработало, даже web-сервер перегружать не надо. Ограничения на расширяемость системы накладывают только используемые языки программирования. Чтобы понять недостатки CGI, надо посмотреть, что происходит при исполнении CGI-приложения. По запросу клиента CGI-прога загружается, выполняет определенные действия (например, генерирует html-код), а после завершения работы удаляется из памяти. Если 100 клиентов одновременно обратятся к одному и тому же CGI-приложению, то в памяти будет создано 100 копий одного и того же приложения. А создание и удаление процесса в операционной системе очень ресурсоемкая операция. В этом основной недостаток генерации страниЦек через CGI'шки. В общем, тормоза и жор ресурсов. Так что оптимальным использованием CGI-приложения будет чат с web-интерфейсом: приложение загружается один раз для каждого пользователя, а выгружается только после выхода пользователя из чата. Однако с учетом гигабайт свободно лежащего в Интернете кода, CGI-приложения до сих пор остаются очень популярны. А универсальность кода, написанного на Perl'е для разных ОС, позволяет кодить приложения для UNIX-серверов дома виндовой тачке.

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

Начнем с PHP, но не потому, что он был первым, а потому, что на сегодняшний день это самый распространенный язык сценариев. PHP (первоначальная аббревиатура Personal Home Page Tools) лишен недостатков CGI-приложений. И хотя первая версия была разработана Расмусом Лендорфом в 1994 году, PHP начал рулить с 1997 года. Именно тогда группа разработчиков во главе с Зивом Шураски и Энди Гутмансом закончила работу над новым синтаксическим анализатором, легшим в основу PHP 3. У PHP есть два огромных плюса по сравнению со своими конкурентами. И оба эти плюса не имеют никакого отношения к производительности, масштабируемости и расширяемости системы:

Содержание  Вперед на стр. 027-056-2