Технологія активних серверних сторінок ASP
Технологія ASP також, як і Dynamic HTML, заснована на впровадженні у прості веб-сторінки спеціальних елементів управління, що допускають програмне управління, але з куди більшим ризиком для безпеки клієнта.
По суті, ASP - це технологія динамічного створення сторінок на стороні сервера, що наблизила проектування та реалізацію Web-додатків до тієї моделі, за якою проектуються і реалізуються звичайні програми.
Для реалізації програм ASP використовуються мови сценаріїв (VBScript або JScript). Також допускається застосування COM-компонентів.
Технологія ASP розроблена для операційних систем із сімейства Windows NT/Server та функціонує під керуванням веб-сервера Microsoft IIS.
Технологія ASP отримала свій розвиток у вигляді ASP.NET — технології створення веб-застосунків, заснованої вже на платформі Microsoft .NET.
Сторінка на ASP — це звичайна сторінка HTML із вставками, позначеними обмежувачами :
Те, що знаходиться всередині обмежувачів - це текст програми, що інтерпретується при запиті сторінки. VBScript є мовою за замовчуванням, хоча можливе використання і JScript [джерело не вказано 1108 днів] (або будь-якої іншої мови, якщо встановлений відповідний інтерпретатор):
Apache::ASP (англ.) надає функціональність ASP на основі веб-сервера Apache зі скриптами на основі Perl.
ASP у Sambar Server
На сервері Sambar Server використовується функціональність ASP, яка використовує мову CScript як основну мову програмних вставок.
Огляд технології Active Server Pages (ASP)
Сергій Верязов, Microsoft Special Interest Group "Neva"
Active Server Pages це середовище програмування, яке забезпечує можливість комбінування HTML, скриптів такомпонент для створення динамічних веб-додатків. Можливість вбудовування в Web-сторінки скриптів (коду, написаного мовою програмування, наприклад, VBScript або JScript) дозволяє логічним чином поєднати оформлення з даними, отриманими з різних джерел, наприклад, з БД.
Ідеологія створення сучасних Web-програм полягає в інкапсуляції бізнес-логіки в окремі компоненти, написані за технологією COM. Технологія ASP у разі є сполучною ланкою між цими компонентами і інтерфейсом Web-приложения.
Принципи функціонування
Використання Active Server Pages не вимагає специфічних браузерів, але вимагає включення небезпечного ActiveX. Усі ASP-скрипти запускаються і виконуються на Web-сервері, причому браузер отримує лише результуючі HTML-файли. Microsoft Internet Information Server, починаючи з версії 3.0, підтримує Active Server Pages. Розглянемо послідовність функціонування ASP. Клієнт запитує ASP-сторінку на Web-сервері. Сервер приймає запит та починає його обробляти. По розширенню файлу (.asp) визначає, що файл містить ASP-скрипт, і починає аналізувати його вміст, послідовно інтерпретуючи і виконуючи вставки ASP-коду. ASP-код, у свою чергу, може містити звернення до різних джерел даних, здійснювати обробку отриманих даних і додавати вміст сторінки, що генерується. В результаті формується звичайна HTML-сторінка (яка вже не містить ASP-коду), яка і відправляється назад клієнту.
Зовнішньо ASP функціонує також, як CGI. Аналогічним чином передаються параметри (формат-рядки запиту) та здійснюється виведення результатів. Однак продуктивність ASP виявляється набагато вищою, тому що при кожному запиті не відбувається окремоїзавантаження ASP-інтерпретатора. Використання компонентів ActiveX також значно підвищує продуктивність Web-сервера.
Опис синтаксису
Об'єкти та компоненти
VBScript не є повнофункціональною мовою програмування та використання вбудованих у нього засобів явно недостатньо. Тому в ASP-сторінках використовуються спеціальні об'єкти та компоненти ActiveX.
Існує набір вбудованих об'єктів, які ініціалізуються та надаються ASP-скрипт автоматично при початку обробки. Ці об'єкти забезпечують доступ до основних життєво важливих функцій:
- Об'єкт Application дозволяє створювати змінні, доступні для всіх користувачів Web-додатків.
- Об'єкт Session дозволяє зберігати дані, пов'язані з окремим користувачем.
- Об'єкт Request надає параметри CGI-запиту, надіслані методом POST 99 або GET.
- Об'єкт Response надає методи додавання інформації, і навіть формування заголовків сторінки відповіді Web-сервера.
- Об'єкт Server містить безліч різних методів, одним із яких є метод CreateObject, що дозволяє створювати екземпляри компонентів ActiveX.
На відміну від вбудованих об'єктів ASP, ASP-компоненти явно необхідно створювати в коді скрипта. Існує безліч ActiveX-компонент, які можна використовувати в ASP-сторінках, причому більшість з них поширюються безкоштовно. Більш того, розробник може сам створювати ActiveX-компоненти в будь-якому середовищі програмування, яке підтримує COM-технологію, наприклад, Visual C++ або Visual Basic.
Слід приділити особливу увагу об'єктам ADO (ActiveX Data Objects), які є потужними інтегрованими засобами для створення додатків для роботи з БД. КомпонентиADO забезпечують швидкий і зручний інтерфейс до БД на найвищому рівні, при цьому зберігається переносимість програм, що розробляються для роботи з іншими БД. Використання компонентів ADO значно спрощує роботу програміста, йому залишається лише правильно скласти SQL-запити до БД та подбати про виведення результатів.
В рамках функціонування Web-програми існує можливість створення обробників основних подій, таких як запуск та зупинення Web-програми, а також відкриття та закриття користувальницької сесії. Ці події описуються у спеціальному файлі ASP global.asa. Обробники даних подій можна використовувати для ініціалізації об'єктів або встановлення значень глобальних змінних.
Засоби розробки
Microsoft Visual InterDev 6.0 (що входить до складу Microsoft Visual Studio) є одним з кращих засобів, що дозволяє не тільки швидко та ефективно створювати ASP-код, але й здійснювати розширене налагодження коду. Основні особливості цього продукту:
- Перегляд списку об'єктів, що використовуються, і можливість швидкого написання коду.
- Підсвічування синтаксису коду (VBScript та JScript).
- Автоматичне формування контенту global.asa.
- При запуску в режимі налагодження InterDev автоматично налаштовує Web-сервер (IIS) у потрібний режим, а після налагодження відновлює налаштування.
- Можливість встановлення точок переривання (breakpoints).
- Перегляд значень змінних (watches) та списку викликаних процедур (call stack).
Нові можливості у IIS 5.0
Остання версія Web-сервера Internet Information Server (IIS) 5.0 значно вдосконалена, завдяки чому підвищена надійність та продуктивність ASP-додатків. Вбудовані об'єкти ASP у Windows 2000 мають новіметодами, що розширюють можливості розробника. З'явилися нові засоби обробки помилок. За допомогою нового об'єкта AppError тепер можна отримувати відомості про помилки, що відбуваються як на стадії виконання, так і на стадії аналізу сторінки.
У новій версії ядра керування сценаріями Script Engine зі складу Windows 2000 з'явилися нові потужні засоби підтримки мов VBScript та JScript. У сценаріях на VBScript тепер можна користуватися засобами перевірки та аналізу складних виразів, а також створювати класи. Кошти доступу до даних також зазнали значних змін тепер у складі ОС поставляється ядро MDAC 2.5, яке, зокрема, забезпечує інтеграцію із засобами XML.
Підтримка інших мов програмування
Гідності й недоліки
Мова VBScript, що зазвичай використовується в ASP, має менш зручний синтаксис, ніж інші мови, наприклад PHP. Однак основний недолік VBScript - безпека клієнта, що неприйнятно знижується, а у зв'язці з ActiveX - практично нульова. Не є компенсацією цього і те, що продуктивність інтерпретатора VBScript значно вища, ніж PHP.
JScript від Microsoft позбавлений цього недоліку, але має інший, серйозніший - неприємну обробку типів даних OLE Automation, що призводить до прихованих, важких у виявленні помилок.
ASP може використовувати дуже досить набір класів для роботи з SQL базами даних - ADO, який приблизно аналогічний Perl DBI і краще, ніж виклики mysql_xxx в PHP. Однак технологія ADO теж застаріла.
ASP підтримує об'єкти Session і Application, з якими в PHP/Apache традиційно є величезні складнощі, пов'язані з архітектурою процесів Apache 1.x (а вона сходить до нелюбові до потоків у світі UNIX та використання fork() замість них)скрізь, де можливо).
Однак, оскільки об'єкт Session нині вважається абсолютно не задовольняючим вимогам безпеки, і часто замість нього весь вміст поміщають в один величезний cookie, і передають туди-назад між клієнтом і сервером. Таке легко реалізується в PHP, цим користуються, наприклад, phpBB та його комерційний дериватив vBulletin.