Владивостокский государственный университет экономики и сервиса Институт информатики инноваций и бизнес систем Предмет: «Технологии Интернет» Руководитель:

Презентация:



Advertisements
Похожие презентации
Владивостокский государственный университет экономики и сервиса Институт информатики инноваций и бизнес систем Предмет: «Технологии Интернет» Руководитель:
Advertisements

Тема 2. Операторы (инструкции) передачи управления. Условный оператор (инструкция) и его формы. Логические выражения и логические переменные. Составные.
Владивостокский государственный университет экономики и сервиса Институт информатики инноваций и бизнес систем Предмет: «Технологии Интернет» Руководитель:
Тема 2 Основные подходы к построению математических моделей систем Дисциплина «Имитационное моделирование экономических процессов» Специальность
1 Управляемость и наблюдаемость. Критерии управляемости и наблюдаемости линейных стационарных многомерных объектов Кафедра ИСКТ Кривошеев В.П.
Владивостокский государственный университет экономики и сервиса Институт информатики, инноваций и бизнес систем Кафедра информационных систем и компьютерных.
[Тема] (40 pt) Кафедра (24 pt) Преподаватель [Подзаголовок] (24 pt)
LOGO Основные методы организации БД Дисциплина: «Проектирование баз данных» Специальность: «Прикладная информатика (в экономике)» Институт информатики,
Шрифт Лекция 7. Тема 3. История развития шрифтов для латинского алфавита. Римское письмо. Специальность «Дизайн» Институт сервиса моды и дизайна,
Основы шрифтовой графики Тема 9. Основные виды печати. Специальные виды печати. Плакат Лекция 16. Специальность «Дизайн» Институт сервиса моды.
Владивостокский государственный университет экономики и сервиса Институт информатики инноваций и бизнес систем Предмет: «Технологии Интернет» Руководитель:
Системный подход Дисциплина «Теория систем и системный анализ» Специальность « Прикладная информатика (в экономике)» Институт информатики, инноваций.
Язык моделирования GPSS Дисциплина «Имитационное моделирование экономических процессов» Специальность « Прикладная информатика (в экономике)»
ОЦЕНКА БИЗНЕСА Кафедра: Экономики и менеджмента Преподаватель: Батурина Ольга Андреевна.
Основы шрифтовой графики Лекция 4. Тема 2. История мировой письменности. Виды письма. Главные этапы исторического развития шрифта. Специальность
ОЦЕНКА БИЗНЕСА Кафедра: Экономики и менеджмента Преподаватель: Батурина Ольга Андреевна.
Основы теории управления Кафедра ИСКТ Кривошеев В.П. Типовые динамические звенья.
Основы шрифтовой графики Лекция 5. Тема 2. История мировой письменности. Виды письма. Главные этапы исторического развития шрифта. Финикийское письмо.
Лекция 11 Тема «Формы » Преподаватель: Халелова Е.Н.
Транксрипт:

Владивостокский государственный университет экономики и сервиса Институт информатики инноваций и бизнес систем Предмет: «Технологии Интернет» Руководитель: Сачко Максим Анатольевич, старший преподаватель

Тема 6 CGI и веб-программирование

Содержание: 1) Интерфейс CGI, его задачи и функции 2) Исполнения CGI-скриптов 3) Структура URL и кодирование данных запроса 4) Переменные окружения CGI. 5) Программирование CGI-скриптов 6) Введение в Perl

4 Интерфейс CGI представляет собой спецификацию взаимодействия веб-сервера и внешней программы, которую веб-сервер запускает для обработки запроса. CGI определяет каким образом данные, предоставленные клиентом в запросе, передаются программе, как программа возвращает сгенерированный HTML-контент серверу, и какие переменные окружения устанавливаются сервером при запуске программы. Основная концепция

5 Клиент может запросить у веб-сервера как документ-файл с диска, так и документ, динамически формируемый некоторой внешней программой (как правило - в зависимости от данных, предоставленных пользователем при заполнении формы). Интерфейс CGI представляет собой спецификацию взаимодействия веб-сервера и внешней программы, которую веб-сервер запускает для обработки запроса. (Внешняя программа, вне зависимости от своей природы, часто называется CGI-скриптом.)

6 Данные из заполненной клиентом HTML-формы могут передаваться на сервер двумя методами: GET и POST, это определяется параметром method соответствующего тэга. В первом случае (GET) данные присоединяются после вопросительного знака в конец URL, указанной в параметре action, во втором случае - передаются в теле запроса - в секции, предназначенной для данных (следует после всех заголовков и пустой строки).

7 Content-Type: text/html Hello, world Например, вывод CGI-программы

8 ScriptAlias /виртуальный/путь/ /путь/к/каталогу/ ScriptAlias /cgi-bin/ /usr/local/www/cgi-bin/ Это означает, что для обработки запроса URL вида будет взят не файл script из каталога DocumentRoot/cgi-bin/dir/, а запущена программа /usr/local/www/cgi-bin/dir/script. Конфигурирование сервера Apache

9 Для работы CGI-программ важное значение имеют части URL, называемые PATH_INFO и QUERY_STRING. Рассмотрим запрос с URL вида: PATH_INFO - /a/b QUERY_STRING - A=1&B=qwerty Структура URL

10 Пары имя-значение разделяются амперсандом. Алфавитно-цифровые символы и некоторые знаки препинания, не имеющие специального значения (тире, подчеркивание) передаются как есть. Остальные символы кодируются в виде "%NM", где NM - двузначный шестнадцатеричный код символа..../prog?birthday=11%2F05%2F73&name=John+Smith birthday - "11/05/73 " name - "John Smith"

11 AUTH_TYPE - Метод аутентифицированная, использованный для опознания пользователя. См. также REMOTE_USER и REMOTE_IDENT. CONTENT_LENGTH - Длина данных запроса в байтах, переданных CGI-скрипту через стандартный ввод. CONTENT_TYPE MIME - Тип данных запроса. DOCUMENT_ROOT - Корневой каталог дерева документов веб-сервера. GATEWAY_INTERFACE - Используемая версия CGI. Переменные окружения CGI

12 HTTP_ACCEPT - Список MIME-типов данных, которые клиент может принять. HTTP_FROM - Адрес электронной почты пользователя, сделавшего запрос (многие броузеры не передают такие данные). HTTP_REFERER - URL документа, в котором находилась ссылка, вызвавшая настоящий запрос. HTTP_USER_AGENT - Броузер клиента. PATH_TRANSLATED - PATH_INFO, преобразованное в полный путь в файловой системе сервера Переменные окружения CGI

13 QUERY_STRING - Данные запроса, переданные в составе URL вслед за вопросительным знаком REMOTE_ADDR - IP-адрес клиента. REMOTE_HOST - Имя DNS клиента. REMOTE_USER - Аутентифицированное имя пользователя. REQUEST_METHOD - Метод запроса (GET, POST, HEAD и т.д.). SCRIPT_NAME - Виртуальный путь (например, /cgi-bin/program.pl) к исполняемому CGI-скрипту Переменные окружения CGI

14 SERVER_NAME - DNS-имя сервера или, при невозможности определить имя, его IP-адрес. SERVER_PORT - Номер порта сервера. SERVER_PROTOCOL - Имя и версия протокола, через который был сделан запрос (например, HTTP/1.1). SERVER_SOFTWARE - Тип и номер версии ПО веб-сервера. Переменные окружения CGI

15 Поскольку все HTTP-запросы независимы друг от друга и на уровне протокола HTTP отсутствует понятие сеанса связи, CGI-программа запускается заново для каждого вновь поступившего запроса, неважно имеет ли он связь с предыдущими или нет. Таким образом, существует проблема сохранения состояния логического сеанса работы пользователя между его последовательными запросами к CGI- программе. Для этого используются: cookies, сохранение состояния в базу данных, сохранение в файл, скрытые поля. Cookies

16 cookies - сохранение на компьютере клиента, скрытые поля - сохранение внутри формы, посылаемой клиенту, сохранение в файле какого-либо формата на сервере, сохранение в параллельно работающей базе данных. Методы сохранения состояния

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

18 my $x; # $x создается, равно undef $x; # ложно defined($x); # ложно $x=0; $x; # ложно defined($x); # истинно $x=5; $x; # истинно defined($x); # истинно $x=undef; # опять undef!

19 Списком (list) называется упорядоченная последовательность скалярных значений; порядковые номера (индексы) начинаются с нуля. Отдельно стоящие списки заключаются в скобки: ($x, "abc", 15) Обращение к элементу списка осуществляется путем указания индекса этого элемента в квадратных скобках: $y=($x, "abc", 15)[1]; # $y="abc" Списки и массивы

20 if (...) {...}; условие ? выражение_да : выражение_нет ; while(...) {...}; do {...} while (...); for (...;...;...;) {...}; if ($a<$b) { $a=$b; } while ($a<$b) { some_function($a); } $a=$b if ($a<$b); Операторы

21 %hash=( a => "A", b=> "B"); print "this is \$x: \"$x\"; \nthis is element 2 of \"$array[2]\";\n", "and \$hash{a} is \"$hash{a}\"\n"; ВЫВОД: this is $x: "abc"; this is element 2 "e"; and $hash{a} is "A"

1. Какие действия предпринимает сервер, если для обработки поступившего запроса требуется запуск CGI-программы? 2. Почему CGI-программа должна выдавать заголовок Content-Type:? 3. Что позволяет делать модуль mod_perl? 4. В чем заключается основная особенность CGI- программи­рования? 5. В чем состоит проблема сохранения состояния в CGI- программировании и какие существуют способы ее решения? Укажите их достоинства и недостатки. 6. Почему язык Perl считается наиболее удобным для написания CGI-приложений? Вопросы для самопроверки:

Рекомендуемая литература: 1. Мамаев М., Петренко С. Технологии защиты информации в Интернете. Специальный справочник. – СПб: "Питер", UNIX для системных администраторов: Энциклопедия пользователя/ Пер.с англ. – Киев: Диа Софт, Д.Р.Левин, К.Бароди. Секреты Интернет. – К.: Диалектика, ICE, S.Spainbour, V.Quercia. Webmaster in a Nutshell. – OReily & Associates, Inc., 2003.

Использование материалов презентации Использование данной презентации, может осуществляться только при условии соблюдения требований законов РФ об авторском праве и интеллектуальной собственности, а также с учетом требований настоящего Заявления. Презентация является собственностью авторов. Разрешается распечатывать копию любой части презентации для личного некоммерческого использования, однако не допускается распечатывать какую-либо часть презентации с любой иной целью или по каким-либо причинам вносить изменения в любую часть презентации. Использование любой части презентации в другом произведении, как в печатной, электронной, так и иной форме, а также использование любой части презентации в другой презентации посредством ссылки или иным образом допускается только после получения письменного согласия авторов.