Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

веб лекции / Lektsia_Veb_tekhnologii_6

.docx
Скачиваний:
12
Добавлен:
11.02.2016
Размер:
29.48 Кб
Скачать

Лекция по «Веб-технологии»

01.03.12.

Тема: «Серверные веб-приложения. CGI»

Основные понятия веб-приложений на стороне сервера идет определение плагина…

Плагин это независимо компилируемый программный модуль, динамически подключаемый к основной программе, предназначенный для расширения или использования ее возможностей. Плагины обычно выполняются в виде библиотек.

Сценарий это программа, которая автоматизирует некоторую задачу, которую пользователь выполняет вручную, используя интерфейсы программ.

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

  1. Запуск программы.

  2. Инициализация и чтение выходных данных.

  3. Обработка данных.

  4. Вывод результатов выполнения.

  5. Завершение программы.

Когда веб-сервер получает запрос от клиента, веб-сервер производит анализ и возвращает ответ:

  1. Если запрос содержит указанный файл, находящийся на жестком диске, то сервер возвращает в составе ответа это файл.

  2. Если запрос содержит указание на программу и необходимые для нее аргументы, то сервер исполняет программу и результат возвращает к клиенту.

CGI определяет:

  1. Каким образом информация в сервере и запросе клиента передается программе в форме аргументов и переменных окружения.

  2. Каким образом программа может передавать назад дополнительную информацию о результатах в форме заголовков ответов сервера.

CGI-сценарий в большинстве случаев запускается по кнопке submit.

Существует два способа распознавания файла содержащего тексты CGI-сценария:

  1. Первый способ заключается в том, что при установке веб-серверов, один из каталогов, специально выделяется для выделения сценариев (CGI-bin). В случае если клиент запрашивает файл из каталога CGI-bin, то сервер воспринимает это как команду запуска сценария.

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

Вывод результатов выполнения CGI-сценария осуществляется через стандартный выходной поток, но этот поток соответствует протоколу HTTP, состоящий из заголовка и тела, сервер в ответе добавляет HTTP(10 200 ОН). Формирование информационных полей, входящих в состав заголовка, это задача сценария. Чтобы данные, переданные сценарием, были правильно интерпретированы клиентом, необходимо чтобы в поле заголовка присутствовало поле Content-type.

Задача программы, написанной по CGI-сценарию, должна осуществляться в два этапа: сначала браузер передает данные веб-серверу, затем веб-сервер передает их сценарию.

Если каким-то образом в name вошел знак & как символ, то этот знак заменяется знаком процента (%).

Алгоритм декодирования чрезвычайно прост и включает в себя следующие действия:

  1. Выделить пары – имя = значения.

  2. Выделить из каждой пары имя и значение.

  3. В каждом значении или к каждом имени, заменить символы «+» пробелами.

  4. Каждую последовательность символа «%» заменить на 16-тиричные или заменить ASCII символы.

Указывая в методе значение GET или POST, мы определяем два различных вида передачи сценария.

  1. В первом случае если мы используем GET, то строка параметров передается вместе с URL передаваемым сценарием. URL разделяется между именем и значением параметра знаком ?

  2. Если значение передается с помощью 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>”;

Достоинства сценария:

  1. Поскольку сценарий не компилируется, ошибка в сценарии не произведет к остановке сервера.

  2. Прост и довольно читабельный.

  3. Поддержка кроссплатформенности.

Недостатки:

  1. Теряется быстродействие

PYTHON – это высокоуровневый язык общего программирования с акцентом на производительность и читаемость кода. Язык Python снабжен большим набором стандартных функций. Python поддерживает структурную, объектно-ориентированную, аспектно-ориентированную парадигму.

Основные архитектурные черты:

  1. Динамическая типизация.

  2. Автоматическое управление памятью.

  3. Механизм обработки исключений.

  4. Поддержка многопоточных вычислений.

  5. Удобная высокоуровневая структура данных.

Код на Python организовывается в функции и классы, которые в свою очередь объединяются в модули, а модули в свою очередь объединяются в пакеты.

Python поддерживает платформы JAVA и .NET

Jython, IronPython, Python.NET.

Стандартная библиотека Python имеет средства для работы с многими сетевыми протоколами. Много модулей, для работы с операционными системами. Может работать с XML, кодировками, мультимедийными форматами. Имеет также криптографические протоколы.

Ruby

Ruby – это интерпретируемый язык высокого уровня, для быстрого и удобного объектно-ориентированного программирования. Обладает реализацией много поточности. Содержит строгую систему типизации. Содержит сборщик мусора. Ruby полностью объектно-ориентированный язык. Все данные являются объектами, каждая функция является методом. Переменные в Ruby содержат не сами объекты а переменные на них. Массивы Ruby могут автоматически изменять размер и содержать любые элементы. Ruby обладает большой стандартной библиотекой. Содержит средства системного администрирования. В Ruby включен интерпретатор С. Невысокая скорость работы, отсутствие поддержки потоков систем.

ASP (Active Server Pages) – эта технология, разработанная компанией MicroSoft позволяющее создавать приложение для веб. Программирование на ASP дает разработчику доступ к интерфейсу программирования приложений.

Соседние файлы в папке веб лекции