веб лекции / Lektsia_Veb_tekhnologii_6
.docxЛекция по «Веб-технологии»
01.03.12.
Тема: «Серверные веб-приложения. CGI»
Основные понятия веб-приложений на стороне сервера идет определение плагина…
Плагин это независимо компилируемый программный модуль, динамически подключаемый к основной программе, предназначенный для расширения или использования ее возможностей. Плагины обычно выполняются в виде библиотек.
Сценарий это программа, которая автоматизирует некоторую задачу, которую пользователь выполняет вручную, используя интерфейсы программ.
Стандарт CGI (Common Gateway Interface) – интерфейс общего шлюза – это набор правил, который определяет порядок запуска программы на компьютере-сервере. Отделяет способы передачи программе параметров и доставка ее результатов клиенту. Программы, написанные по правилам CGI, называются CGI-сценарием. Благодаря этим правилам, сценарии можно писать на различных языках. Выполнение любой программы на CGI-сценарии можно разделить по этапам:
-
Запуск программы.
-
Инициализация и чтение выходных данных.
-
Обработка данных.
-
Вывод результатов выполнения.
-
Завершение программы.
Когда веб-сервер получает запрос от клиента, веб-сервер производит анализ и возвращает ответ:
-
Если запрос содержит указанный файл, находящийся на жестком диске, то сервер возвращает в составе ответа это файл.
-
Если запрос содержит указание на программу и необходимые для нее аргументы, то сервер исполняет программу и результат возвращает к клиенту.
CGI определяет:
-
Каким образом информация в сервере и запросе клиента передается программе в форме аргументов и переменных окружения.
-
Каким образом программа может передавать назад дополнительную информацию о результатах в форме заголовков ответов сервера.
CGI-сценарий в большинстве случаев запускается по кнопке submit.
Существует два способа распознавания файла содержащего тексты CGI-сценария:
-
Первый способ заключается в том, что при установке веб-серверов, один из каталогов, специально выделяется для выделения сценариев (CGI-bin). В случае если клиент запрашивает файл из каталога CGI-bin, то сервер воспринимает это как команду запуска сценария.
-
Второй способ использует расширения файла. При настройке сервера указывается что файл с определенным расширением содержит коды сценария.
Вывод результатов выполнения CGI-сценария осуществляется через стандартный выходной поток, но этот поток соответствует протоколу HTTP, состоящий из заголовка и тела, сервер в ответе добавляет HTTP(10 200 ОН). Формирование информационных полей, входящих в состав заголовка, это задача сценария. Чтобы данные, переданные сценарием, были правильно интерпретированы клиентом, необходимо чтобы в поле заголовка присутствовало поле Content-type.
Задача программы, написанной по CGI-сценарию, должна осуществляться в два этапа: сначала браузер передает данные веб-серверу, затем веб-сервер передает их сценарию.
Если каким-то образом в name вошел знак & как символ, то этот знак заменяется знаком процента (%).
Алгоритм декодирования чрезвычайно прост и включает в себя следующие действия:
-
Выделить пары – имя = значения.
-
Выделить из каждой пары имя и значение.
-
В каждом значении или к каждом имени, заменить символы «+» пробелами.
-
Каждую последовательность символа «%» заменить на 16-тиричные или заменить ASCII символы.
Указывая в методе значение GET или POST, мы определяем два различных вида передачи сценария.
-
В первом случае если мы используем GET, то строка параметров передается вместе с URL передаваемым сценарием. URL разделяется между именем и значением параметра знаком ?
-
Если значение передается с помощью POST, то строка параметра передается в теле HTTP запроса.
Сценарий для того, чтобы работать двумя из методов имеет специальные переменные. Если метод GET передача, то в качестве переменной окружения, находящейся на сервере имеет название - QUERY_STRING.
Для того, чтобы определить длину передачи строки, существует переменная окружения CONTENT_LENGHT.
Для определения метода запроса, существует REQUEST_METHOD.
$method = $ENV{‘REQUEST_METHOD’};
if($method eq “GET”)
{$pars = $ENV{‘QUERY_STRING’};
else {$length = $ENV{‘CONTENT_LENGTH’};}
read(STDIN,$pars,$length);
print ”Content-type:text/”html\n\n”;
print ”<HTML><BODY>\n”;
print “<p>METHOD =” ,$method;
print “<p> string of param <p>\n”;
print $pars;
print “</BODY></HTML>”;
Достоинства сценария:
-
Поскольку сценарий не компилируется, ошибка в сценарии не произведет к остановке сервера.
-
Прост и довольно читабельный.
-
Поддержка кроссплатформенности.
Недостатки:
-
Теряется быстродействие
PYTHON – это высокоуровневый язык общего программирования с акцентом на производительность и читаемость кода. Язык Python снабжен большим набором стандартных функций. Python поддерживает структурную, объектно-ориентированную, аспектно-ориентированную парадигму.
Основные архитектурные черты:
-
Динамическая типизация.
-
Автоматическое управление памятью.
-
Механизм обработки исключений.
-
Поддержка многопоточных вычислений.
-
Удобная высокоуровневая структура данных.
Код на Python организовывается в функции и классы, которые в свою очередь объединяются в модули, а модули в свою очередь объединяются в пакеты.
Python поддерживает платформы JAVA и .NET
Jython, IronPython, Python.NET.
Стандартная библиотека Python имеет средства для работы с многими сетевыми протоколами. Много модулей, для работы с операционными системами. Может работать с XML, кодировками, мультимедийными форматами. Имеет также криптографические протоколы.
Ruby
Ruby – это интерпретируемый язык высокого уровня, для быстрого и удобного объектно-ориентированного программирования. Обладает реализацией много поточности. Содержит строгую систему типизации. Содержит сборщик мусора. Ruby полностью объектно-ориентированный язык. Все данные являются объектами, каждая функция является методом. Переменные в Ruby содержат не сами объекты а переменные на них. Массивы Ruby могут автоматически изменять размер и содержать любые элементы. Ruby обладает большой стандартной библиотекой. Содержит средства системного администрирования. В Ruby включен интерпретатор С. Невысокая скорость работы, отсутствие поддержки потоков систем.
ASP (Active Server Pages) – эта технология, разработанная компанией MicroSoft позволяющее создавать приложение для веб. Программирование на ASP дает разработчику доступ к интерфейсу программирования приложений.