скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Технологии программирования Web

Сервер интерпретирует SSI-директивы и выполняет соответствующие действия. Использование SSI-вставок позволяет динамически формировать странички в зависимости от различных параметров(например, типа браузера).

Преимущества SSI проявляются тем сильнее, чем больше по объему сайт, имеющий повторяющиеся элементы кода на разных страничках.
Для того, чтобы сервер знал, что страничка не обычная, а содержит SSI-директивы, используется специальное расширение: shtml или shtm. (Вообще-то, конфигурация сервера может быть настроена и на другое расширение, но shtml воспринимается всегда (если только на сервере не отключено применение SSI вообще).

Для того, чтобы указать серверу, какой блок нужно вставить и в каком месте странички, используется специальная форма записи в виде комментария:

<!--#команда параметр="значение" -->

При просмотре сформированного исходника HTML-файла пользователь не увидит никаких признаков SSI, т.к. браузер получает уже готовый HTML-код.

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

Не является ли SSI альтернативой CGI? Скорее, это дополнение (и очень ценное) к CGI, предоставляющее web-программисту множество удобств.

ISAPI

Подобно CGI, спецификация ISAPI (Internet Server Application Programming Interface) определяет правила взаимодействия между Web-сервером и дополнительны­ми программами. Для того чтобы понять, зачем понадобился альтернативный подход к созданию программ, выполняющихся на сервере, поговорим о преимуществах и не­достатках стандарта CGI.

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

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

Стремление повысить производительность и снизить затраты ресурсов привело к созданию корпоративных стандартов. Наиболее известными из них являются NSAPI и ISAPI.

Основное отличие ISAPI-программы от CGI-сценария состоит в том, что ISAPI-программа представляет собой не исполняемый файл, а динамическую библиотеку (DLL). Благодаря этому появилась возможность запускать программу не как отдель­ный процесс, а как поток, принадлежащий Web-серверу. Для выполнения потока тре­буется значительно меньше ресурсов, чем для работы независимого процесса. Поток использует адресное пространство породившего его процесса и работает намного бы­стрее, чем отдельный процесс.

По окончании выполнения процесс выгружается из памяти, а при поступлении следующего запроса снова загружается с диска. Это также не способствует эффектив­ной работе CGI. При интенсивном поступлении запросов необходимость постоянного обмена с диском создает дополнительную нагрузку на сервер. В отличие от CGI-сценария, ISAPI-программа, окончив свою работу, как правило, остается резидентной в памяти и используется для обработки последующих запросов.

Однако иногда преимущества ISAPI-программ оборачиваются недостатками. (Это не удивительно. Ведь если бы ISAPI-программы были свободны от недостатков, они бы быстро вытеснили CGI-сценарии.)

Если за универсальность CGI-сценариев пришлось платить недостаточной произ­водительностью, то в качестве платы за высокую производительность создатели ISAPI-программ жертвуют универсальностью. Арсенал языков, имеющихся в распо­ряжении разработчиков ISAPI-программ, значительно беднее, чем у их коллег, соз­дающих CGI-сценарии. По сути, тому, кто хочет быстро написать достаточно боль­шую ISAPI-программу, не остается иного выбора, кроме C++.

Второй недостаток ISAPI гораздо серьезнее первого. Поскольку программа данного типа выполняется как поток, порожденный сервером, она использует адресное про­странство сервера. Следовательно, ошибка ISAPI-программы может не только вызвать ее аварийное завершение, но и вывести из строя сервер.

Программы, использующие спецификацию ISAPI, делятся на две категории.

*   Расширения. Функционально они мало чем отличаются от CGI-сценариев. По­добно CGI-сценариям, расширения реализуют дополнительные возможности Web-сервера, но строятся совершенно по-другому. Рассмотрению ISAPI-расширений посвящена данная глава.

*   Фильтры. Это особый класс программ. Если расширения дополняют возможно­сти Web-сервера, то фильтры изменяют его поведение. Принцип работы и реа­лизация ISAPI-фильтров будут рассмотрены в следующей главе.

ISAPI-расширение представляет собой динамическую библиотеку (DLL), которая связывается с Web-сервером в процессе его работы. В данной библиотеке должны экспортироваться, т.е. быть доступными для вызова, две функции: GetExtensionVersion() и HttpExtensionProcf).

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

В отличие от расширения, которое вызывается лишь тогда, когда в запросе клиента явно указан URL программы, ISAPI-фильтр получает управление при каждом обра­щении клиента к серверу. Программа-фильтр загружается в память при запуске Web-сервера и остается резидентной в течение всего времени работы сервера.

Язык программирования Perl

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

Perl был создан в 1986 году как инструмент для администрирования и конфигурирования системных ресурсов сети, состоящей из Unix-компьютеров. Он сочетает в себе лучшие черты C, shell, sed и awk, поэтому для тех, кто знаком с ними, изучение Perl-а не представляет особого труда. Cинтаксис выражений Perl-а близок к синтаксису C. В отличие от большинства утилит ОС UNIX Perl не ставит ограничений на объем обрабатываемых данных и если хватает ресурсов, то весь файл обрабатывается как одна строка. Рекурсия может быть произвольной глубины. Хотя Perl приспособлен для сканирования текстовых файлов, он может обрабатывать так же двоичные данные и создавать .dbm файлы, подобные ассоциативным массивам. Perl позволяет использовать регулярные выражения, создавать объекты, вставлять в программу на С или C++ куски кода на Perl-е, а также позволяет осуществлять доступ к базам данных.

Язык Perl был создан для повышения эффективности обработки текстовых документов. Он ориентирован на обработку строк. В настоящее время язык получил большое распространение как инструмент создания исполняемых модулей WWW-сервера. Существующие пакеты расширения обеспечивают доступ к SQL-серверам непосредственно из Perl-программы. Это позволяет использовать его для решения всех задач, возникающих при обеспечении WWW-доступа к базам данных. Perl эффективен также при обработке произвольных структур данных: существующих отчетов, списков, карточек в электронном виде.

Хотя CGI-приложения можно писать практически на любом языке, Perl и CGI-программирование стали синонимами для многих програм­мистов. Как сказал Хасан Шрейдер (Hassan Shroeder), первый вебмастер Sun, «Perl - это артерия Интернета». Perl - самый широко исполь­зуемый язык для CGI-программирования, и для этого есть много веских причин:

•   Perl легко выучить: его синтаксис напоминает другие языки (например С), потому что он «многое прощает», - при ошибке выда­ется подробное сообщение, помогающее быстро локализовать про­блему.

• Perl способствует быстрой разработке, так как это интерпретируе­мый язык; исходный код не надо компилировать перед запуском.

•   Perl доступен на многих платформах с минимальными измене­ниями.

•  Perl содержит очень мощные функции для обработки строк со встро­енной в язык поддержкой поиска и замены по регулярным выраже­ниям.

•   Perl обрабатывает двоичные данные так же легко, как и текст.

•  Perl не требует четкого разделения на типы: числа, строки и логичес­кие выражения являются обычными скалярами.

•   Perl взаимодействует с внешними приложениями очень просто и обеспечивает собственные функции для работы с файловыми систе­мами.

•   Для Perl есть много свободно доступных модулей от CPAN, начиная с модулей для создания динамической графики до интерфейсов с Ин­тернет-серверами и системами управления базами данных. За под­робной информацией по CPAN обратитесь к приложению В.

Perl действительно очень быстрый: считывая исходный файл, он тут же компилирует его в низкоуровневый код, который потом исполняет. Обычно компиляция и исполнение в Perl не воспринимаются как от­дельные шаги, поскольку выполняются вместе: Perl запускается, чита­ет исходный файл, компилирует его, запускает и затем завершает рабо­ту. Этот процесс повторяется каждый раз, когда запускается сценарий Perl, в том числе CGI-сценарии. Поскольку Perl так эффективен, этот процесс происходит достаточно быстро, чтобы обрабатывать все запро­сы не на самых загруженных серверах. Однако следует обратить внимание, что в систе­мах Windows это гораздо менее эффективно из-за необходимости созда­ния новых процессов.

PHP

РНР изобретен Расмусом Лердорфом в конце 1994 года. Первая вер­сия выпущена в 1995 году под именем «Инструментарий Персональ­ных Домашних Страниц», затем она была переработана и названа PHP/FI Version 2 (FI — модуль обработки данных для форм). Так­же была добавлена поддержка баз данных mSQL. С этого момента в разработке стали принимать участие добровольцы.

Статистика используемости РНР приблизительна, но, согласно ис­следованию, проведенному Netcraft, в начале 2001 года РНР исполь­зовался на более чем 5 300 000 сайтах по всему миру. Для сравне­ния: в это время число IIS серверов было примерно таким же (5 млн). Разработка интерпретатора РНР приняла форму организованного командного процесса, ядро интерпретатора разрабатывает компания Zend.com. При этом РНР распространяется свободно: его последнюю версию можно загрузить с сайта PHP.net. Модули РНР поставляют­ся в комплекте с сервером Apache, в комплектах систем Linux.

Изначально аббревиатура РНР означала Preprocessor of Home Pages — препроцессор домашних страниц. Это язык внедряемых в HTML-страницы сценариев, исполняемых на сервере. По большей части его синтаксис заимствован из таких языков, как С, Perl, Java, и при этом добавлена масса возможностей, которых этим языкам недостает. Про­ще говоря, синтаксис РНР — это разумная альтернатива и строго­сти С, и «беспредельности» Perl.

РНР наделен практически полным набором функциональности, о ко­торой (до появления РНР) мог только мечтать web-программист. Его цель — позволить максимально быстро создавать динамически гене­рируемые web-страницы. С полным основанием можно заявить, что изучение и использование РНР будет выгодно как начинающим, так и профессиональным программистам.

Основными конкурентами РНР являются технологии JSP (Java Server Pages и Java Scriptlets), ASP (Active Server Pages), Perl, SSI (Server Side Includes), Cold Fusion Server Pages.

Рассмотрим те недостатки, которые присущи указанным технологиям. JSP — достаточно слож­ный для изучения и использования язык. ASP, основанный на син­таксисе VBScript (Visual Basic), имеет всего несколько десятков соб­ственных функций и поэтому вынужден использовать СОМ-объекты; кроме того, он ориентирован исключительно на работу под Windows. Perl — язык головоломный, и его вольности затрудняют его понима­ние. SSI позволяет всего лишь компоновать HTML-страницу из не­скольких файлов. CF — коммерческий продукт, что является его ос­новным недостатком.

Основные достоинства РНР:

§  бесплатен; постоянно совершенству­ется; работает на UNIX и Windows платформах;

§  допускает работу с большинством СУБД;

§  имеет широкий набор функций (более 3 тыс.);

§  допускает объектно-ориентированное программирование;

§  способен использовать протоколы HTTP, FTP, ШАР, SNMP, NNTP, РОРЗ, net sockets и другие;

-   позволяет выполнять все операции, что и пере­численные его конкуренты, и даже работать с файлами графики. Можно также запускать РНР-скрипты как интерпретируемые файлы и компилировать исполняемые приложения (в том числе с под­держкой графического интерфейса GTK).

Если вы обнаружите, что РНР не способен на что-то (или работает не так, как вам хотелось бы), никто не будет препятствовать вам вно­сить в исходный код РНР (написанный на С) желаемые изменения. РНР является программным продуктом с открытым исходным кодом, и внесение в него улучшений и дополнений путем создания собст­венных модулей расширения всегда приветствуется.

ASP и ASP.NET в составе Microsoft.NET

В конце 1997 г. Microsoft реализовала отно­сительно простую среду периода выполнения пля Web — Active Server Pages (ASP) как часть сервера Internet Information Server (IIS), вклю­ченного в Windows NT 4 Option Pack. IIS об­служивает Web-страницы, запрашиваемые пользователем. ASP позволяет программистам реализовывать алгоритмы динамичес­кого создания страниц на IIS, состоящих из статического HTML и кода сценариев. Когда пользователь запрашивает ASP-страницу, IIS должен ее найти и активизировать ASP-процессор. ASP-процессор должен прочитать страницу и один к одному ско­пировать содержащиеся на ней HTML-элементы в выходную страницу. В нашем примере атрибут style устанавливает голубой цвет текста. При этом также интерпретируются элементы сцена­риев, расположенные между ограничителями <% %>. Этот код    , должен выполнять алгоритм, выдающий в качестве результата HTML-строки, которые ASP-процессор должен скопировать в выходную страницу в те места, где были элементы сценария. Ре­зультирующая страница, собранная из статических HTML-элемен­тов и HTML, динамически сгенерированного сценарием, должна быть передана клиенту. Для простых задач ASP приме­нять относительно легко, что является признаком качества этой технологии.

<html style="color:#OOOOFF;">

The time is: <% =time X> on <X =date X>

</html>

Технология Microsoft ASP представляет собой совокупность серверных средств для динамического создания Web-документов.

Активные серверные страницы (Active Server Pages, ASP), создан­ные Microsoft для собственного веб-сервера, сейчас доступны для многих серверов. Сервер ASP интегрирован в веб-сервер и не требу­ет отдельного процесса. Он позволяет программистам совмещать код и HTML-страницы вместо того, чтобы писать отдельные программы. Для ASP существуют модули, позволяющие делать то же самое, используя CGI. ASP поддерживают различные языки программирования, самый популярный из которых Visual Basic, хотя JavaScript также поддерживается. Кроме того, существу­ет версия Perl от ActiveState, которую можно использовать в Windows с ASP.

Microsoft .NET — готовая инфра­структура для решения общих проблем Ин­тернет-приложений. Это прикомпоновываемая среда периода выпол­нения, работающая в ОС Windows 2000.

Сервис, обеспечиваемый .NET:

•   .NET Framework — среда периода выполнения, облегчающая написание полноценного надежного кода в сжатые сроки, управление, развертывание и модификацию этого кода. Написанные вами программы и компоненты выполняются в этой среде. Она дает программистам в период выполнения такие классные возможности, как автомати­ческое управление памятью (сборка мусора) и упрощенный доступ ко всем службам ОС. Она добавляет массу вспомога­тельных функций вроде простого доступа к Интернету и ба­зам данных. Кроме того, она обеспечивает новый механизм повторного применения кода — более простой в использова­нии и в то же время более мощный и гибкий, чем СОМ. Раз­вертывать .NET Framework проще, так как она не требует на­стройки реестра. Она также поддерживает на системном уровне стандартизированный механизм управления версиями. Все это доступно программистам на любом .NET-совместимом языке. .NET Framework мы обсудим в главе 2.

Страницы: 1, 2, 3, 4, 5


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.