1 Учебный курс Основы Web-технологий Лекция 6 CGI и Perl. SSI и Cookies кандидат технических наук Павел Брониславович Храмцов paul@kiae.su.

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



Advertisements
Похожие презентации
1 Учебный курс Введение в JavaScript и CGI Лекция 5 Основы CGI кандидат технических наук Павел Брониславович Храмцов
Advertisements

CGI Common Gateway Interface.
Лекция Тема: «Средства создания серверного программного обеспечения» Преподаватель: Халелова Е.Н.
1 Учебный курс Введение в JavaScript и CGI Лекция 3 Программирование форм и графики кандидат технических наук Павел Брониславович Храмцов
Протокол HTTP.
Программирование на стороне сервера.
Скриптовые языки на примере Perl. Языки программирования Скриптовые Программа (или ее бай-код) интерпретируется Зачастую более высокий уровень абстрагирования.
Лекция 11 Тема «Формы » Преподаватель: Халелова Е.Н.
1 Учебный курс Введение в JavaScript и CGI Лекция 1 Введение в JavaScript кандидат технических наук Павел Брониславович Храмцов
Лекция 2 Программирование на стороне сервера: Протокол HTTP. CGI. Передача параметров серверу. Запоминание состояния. Меры безопасности. CGI и базы данных.
ПРОТОКОЛЫ HTTP. HTTP - HyperText Transfer Protocol Протокол уровня приложений Текущая версия HTTP/1.1.
Разработка и использование интерактивных форм Общие положения. Общие положения. Современные браузеры позволяют пользователю, заполнив специальную форму,
Web-программирование По материалам курса University of Washington
Занятие Language Reflection Language Reflection – способность объектов к рефлексии, то есть умение давать информацию об исключительно языковых свойствах.
PHP и технологии создания сайтов. Обработка форм script.php?name=test Варианты передачи переменных: Переменные передаются непосредственно php- модулю.
Web-программирование Кейно Павел Петрович
Поддержка протоколов Internet cgi - протокол CGI используемый для интерпретации форм HTML на стороне сервера. cgi - протокол CGI используемый для интерпретации.
Java Advanced XML Transformations 1.0 (XSLT 1.0).
Материалы взяты из википедии. HTTP HTTP (англ. HyperText Transfer Protocol «протокол передачи гипертекста»)англ. гипертекста.
Проф. В.К.Толстых, Выполнил студент: Тышлек С.В., 2009 Технологии разработки Internet- приложений Из цикла лекций «Технологии разработки.
Транксрипт:

1 Учебный курс Основы Web-технологий Лекция 6 CGI и Perl. SSI и Cookies кандидат технических наук Павел Брониславович Храмцов

2 CGI-скрипты и Perl Вывод данных: #!/usr/bin/perl print Content-type: text/plain\n\nHello Perl!\n Стандартный поток вывода #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print " "; print " Perl и CGI. "; print " ";

3 CGI-скрипты и Perl Переменные окружения #!/usr/local/bin/perl print "Content-type: text/plain\n\n"; print "REQUEST_METHOD:$ENV{REQUEST_METHOD}"; #!/usr/local/bin/perl print "Content-type: text/plain\n\n"; foreach $hkey (keys %ENV) { print "$hkey:$ENV{$hkey}"; }

4 CGI-скрипты и Perl Аргументы командной строки host>script arg1 arg2 arg3 script?arg1+arg2+arg3 #!/usr/local/bin/perl print "Content-type: text/plain\n\n"; foreach $arg { print "$arg\n"; }

5 CGI-скрипты и Perl Стандартный ввод #!/usr/local/bin/perl print "Content-type: text/plain\n\n"; print "CONTENT_LENGTH=$ENV{CONTENT_LENGTH}"; #!/usr/local/bin/perl print "Content-type: text/plain\n\n"; print "CONTENT_LENGTH=$ENV{CONTENT_LENGTH}\n"; read STDIN,$query,$ENV{CONTENT_LENGTH}; print "Query:$query.";

6 Немного о Perl Типы данных и переменные Скаляры: $a = 1; $b = 2.5; $str = "это строка символов"; Одномерные = = = $q = $c[3]; # 4

7 Немного о Perl Типы данных и переменные Ассоциативные массивы: %a = ("test",1,"test2",2); $c = $a{test}; # $c=1 Указатели $a = 1; $p = = (1,2,3); $p = $p = \%c; $d = $$p{"test"}; Дескрипторы потоков данных: open IN,"

8 Немного о Perl Регулярные выражения (сопоставление с образцом) if($query =~ /target/) { print $query; } script?n1=v1&n2=v2&n3=v3... ($v1,$v2,$v3) = ($query =~ /^n1=(.+)&n2=(.+)&n3=(.+)$/); print $v1,$v2,$v3; $query =~ s/%(.{2})/pack('c',hex($1))/eg;

9 Немного о Perl Управление потоком вычислений while() { if(/the end/) {goto out;}; } out: print "the_end\n"; for($i=0;$i

10 Немного о Perl Файлы, каталоги, конвейеры, сокеты read STDIN, $query, $ENV{CONTENT_LENGTH}; #!/usr/local/bin/perl use IPC::Open2; use FileHandle; $pid = open2(\*RDR,\*WRD,"cat"); WRD->autoflush(); print WRD "test\n"; $got = ; print "Это \$got:$got";

11 Немного о Perl Eval(); Библиотеки: $sm =~ s/%(.{2})/pack('c',hex($1))/eg; #!/usr/local/bin/perl read STDIN,$query,$ENV{CONTENT_LENGTH}; $query =~ s/%(.{2})/pack('c',hex($1))/ge; $query =~ tr/+/ /ge; $query =~ s/f=//; eval $query; CPAN(

12 HTML: Form...

13 HTML: Form GET POST

14 HTML: Form SSI

15 HTML: Form INPUT имя_поля.x=DD&имя_поля.y=DD

16 HTML: Form SELECT и OPTION Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье

17 HTML: Form TEXTAREA Здесь можно ввести произвольный текст off отключить выравнивание внутри поля; virtual включить выравнивание, но передавать как длинную строку; physical включить выравнивание, но передавать вместе с переводом строк.

18 CGI: Обработка запросов GET ISINDEX engine+world+wide+web #!/usr/local/bin/perl print "Content-type: text/plain\n\n"; print "Запрос: $ENV{QUERY_STRING}.\n"; $n for($i=0;$i

19 CGI: Обработка запросов GET Поле1: Поле2: GET /test.cgi?f1=value1&f2=value2 HTTP/1.0 $query = $ENV{QUERY_STRING);

20 CGI: Обработка запросов Передача параметров через PATH_INFO адрес ресурсаразделительпараметры //localhost/cgi-bin/test/arg1/arg2/arg3?param1+param2 схемаразделительпуть к ресурсу адрес скрипта PATH_INFO //localhost/cgi-bin/test/arg1/arg2/arg3

21 CGI: Обработка запросов Стандартные библиотеки разбора данных CGI.pm полный набор функций для генерации HTML- файлов с формами и разбора запросов CGI-скриптами. CGI_Lite это средство работы с составными (multipart/form- data) запросами. При работе с функциями данного модуля следует иметь в виду, что временные файлы эти функции размещают в каталоге /tmp.

22 Server Site Includes Базовый синтаксис: Примеры:

23 Server Site Includes Расширенный синтаксис:

24 Cookies GET /index.html HTTP/1.1 Host: HTTP/ OK Content-type: text/html Set-Cookie: name=value GET /spec.html HTTP/1.1 Host: Cookie: name=value Accept: */*

25 Cookies ПРИМЕР (Ответ Google): HTTP/ Found Location: Cache-Control: private Set-Cookie: PREF=ID=3cdad051f1089e67:TM= :LM= : S=M73wpRopi-laDSbf; expires=Sat, 17-Apr :47:58 GMT; path=/; domain=.google.com Date: Thu, 17 Apr :47:58 GMT Content-Type: text/html Server: gws Content-Length: 218 Connection: Close