«Введение в информационные технологии» Семинар №7 Тема: «Web программирование (CGI)» План занятия Интерфейс CGI для вызова сценария на стороне сервера 1. 2. 3. 4. 5. 6. CGI – Common Gateway Interface HTTP сервер (Apache, IIS) Вызов приложения на стороне сервера через интерфейс CGI Передача параметров шлюзу CGI Метод GET (строка браузера) Метод POST (html-форма) Выполнение CGI приложения 1. Директории public_html и cgi-bin, именование скриптов (.cgi) 2. Основные переменные окружения: REQUEST_METHOD QUERY_STRING CONTENT_LENGTH CONTENT_TYPE REMOTE_ADDR SCRIPT_NAME SCRIPT_FILENAME HTTP_USER_AGENT 3. Ответ сервера “Content-type” и “charset” 4. Стандартные потоки ввода и вывода Языки программирования и CGI 1. Командный процессор Bash #!/bin/sh echo 'Content-type: text/plain; charset=koi8-r' echo echo Hello 2. Язык сценариев Perl #!/usr/bin/perl print "Content-type: text/plain\n"; print "\n"; print "Hello"; 3. Гипертекстовый процессор PHP <html><head><title>Hello Page</title></head> <? echo Hello; ?> <html> HTML форма для передачи данных серверу 1. Синтаксис <FORM ACTION="url" METHOD="POST | GET"> 1 <INPUT | SELECT | TEXTAREA> </FORM> 2. Атрибуты ACTION и METHOD 3. Поля формы. Поле ввода <input> Задания 1. Написать CGI-скрипт hello.cgi на встроенном языке процессора Bash. Скрипт должен печатать приветствие ‘Привет’ на русском языке и быть доступен по адресу http://ccfit.nsu.ru/~USER/cgi-bin/hello.cgi (где USER - зарегистрированное имя пользователя). 2. Написать аналогичный скрипт приветствия hello-pl.cgi на языке Perl 3. Создать страницу google.html. Данная страница должна содержать форму <form…>…</form> для отправки строки запроса в поисковую систему Google и быть доступна по адресу http://ccfit.nsu.ru/~USER/google.html 4. На встроенном языке процессора Bash написать скрипт request.cgi для вывода информации о запросе. Скрипт должен распечатывать все возможные переменные окружения (см. п. 2.2) и быть доступен по адресу http://ccfit.nsu.ru/~USER/cgibin/form.cgi Пример работы скрипта показан ниже на рисунке 5. Добавить возможность передачи имени для приветствия CGI-скрипту hello.cgi. Имя передавать через параметр name, например: http://ccfit.nsu.ru/~USER/cgibin/hello.cgi?name=vasja 6. Все задания должны быть запакованы в архив seminar8.tgz и высланы преподавателю 2