Вятский Государственный Университет конспект

Вид материалаКонспект

Содержание


Функции сервера.
Протокол HTTP.
GET сообщает серверу о необходимости добыть часть информации, обычно это документ, и вернуть ее клиенту. POST
Передача данных форм.
Как работает CGI?
Существуют 3 CGI интерфейса.
Standart CGI
Методы CGI программирования.
Особенности сообщений об ошибках
Интерфейс Windows CGI.
Процесс обработки информации Windows CGI
Подобный материал:
1   ...   5   6   7   8   9   10   11   12   13

Функции сервера.



Сервер базы данных занят не только обслуживанием базы данных, в них предусмотрены:
    1. механизм блокировки;
    2. элемент управления с многопользовательским доступом, который обеспечивает защиту данных от параллельного доступа;
    3. функции ограждения данных от несанкционированного доступа;
    4. оптимизация и запрос в базу данных;
    5. предоставление места для размещения словаря данных.

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

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

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

Триггер – эта хранимая процедура, которая активизируется автоматически как только сервер базы данных встречает событие, связанное с данным событием.

Правило – это специальный тип триггера, который проверяет данные до внесения их в базу данных.


Протокол HTTP.



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

Необходимо знать HTTP, т. к. CGI – программы:
  1. Должны генерировать хотя бы один HTTP заголовок.
  2. В полученном от браузера URL может содержаться строка запроса или другой аргумент. Дополнительная информация о пути необходима для выполнения запросов.
  3. В запросе могут передаваться HTTP заголовки, содержимое которых необходимо для правильной интерпретации запросов. Может так же возникнуть потребность включить в ответ специальный HTTP заголовок.
  4. Может возникнуть необходимость воспользоваться двумя дополнительными возможностями протокола HTTP:
  1. не разрывать соединение после выдачи ответа;
  2. задать область документов.


Типы запросов HTTP.


Обычно используются 2 типа запросов – GET и POST.

GET сообщает серверу о необходимости добыть часть информации, обычно это документ, и вернуть ее клиенту.

POST перемещает информацию в обратном направлении от клиента на сервер. Практически метод POST используется только для передачи содержимого HTTP формы на сервер.

Большинство серверов не способны обрабатывать запросы POST своими средствами. Обычно запросы POST обрабатываются CGI программами. При запросе по методу POST так же может быть возвращена информация любого вида и произвольного объема.


Передача данных форм.


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

Эта информация пересылается в формате name = <<имя>>. Если в формате используется атрибут METHOD = GET, то информация, содержащаяся в форме, присоединяется к соответствующему URL а качестве строки аргумента.

Форма может содержать несколько полей в которые помещаются длинные строки текста. В таких случаях полный URL может получиться очень длинный. При использовании атрибута METHOD = POST данные посылаются в теле запроса, а не присоединяются к URL. Таким образом более предпочтительным является метод POST.

Необходимо всегда использовать метод POST в формах, которые что-нибудь изменяют или выполняют необратимые действия. Метод POST более безопасен и эффективен, а GET никогда нельзя использовать для внесения каких-либо изменений.


Как работает CGI?



Браузер задает URL и возможно некоторые исходные данные для CGI программ и посылает этот запрос на сервер. CGI программа часто получает информацию для обработки из html форм.

Форма – это такие объекты html, которые дают возможность пользователю выбрать определенные поля, либо определенный элемент из набора опций. Формы можно использовать, например для получения адреса электронной почты пользователя.

Сервер запускает CGI программу и передает ей поступающий запрос. CGI программа выполняет некоторые действия и генерирует ответ, после чего завершает работу. Сервер пересылает ответ CGI программы обратно в браузер. Для пользователя браузера это процесс не видим, он выглядит так же, как получение любого статистического документа, за исключением того, что в URL должно фигурировать имя файла с расширением EXE.

Э
1.

2.
тапы работы CGI.



браузер

Web-

сервер

CGI

прогр

БД

3.


5.

4.




1. – передает данные, формирует запрос;

2. – данные, формирует CGI программу, передается запрос;

3. – обмен информацией;

4. – html документ;

5. – html документ.


Когда сервер обнаруживает что необходимо запустить CGI программу он сначало определяет, какую именно программу, на основе URL, полученного от браузера. Затем сервер собирает всю имеющуюся в его распоряжении информацию, которую связывает с полученным запросом, в том числе содержащуюся в формах, наконец сервер запускает CGI программу и переключается на обслуживание других запросов, чем и занимается до тех пор, пока не определит, что CGI программа завершила работу.

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

CGI – это интерфейс сервера предназначенный для выполнения внешних программ.

Он должен обладать способностью передавать в программы информацию получаемую сервером от браузера, а так же обладать средствами для чтения информации, вырабатываемой данной программой и передаваемой ее обратно браузеру. Этот интерфейс так же должен обеспечить передачу CGI программам некоторого количества бит информации через переменные CGI.

При разработке CGI необходимо учитывать:
  1. Ответ, посылаемый браузеру должен начинаться с раздела заголовка html, в котором обычно объявляется тип содержимого. Последняя строка в заголовке должна быть пустой.
  2. После пустой строки может следовать любой текст в формате html.
  3. Браузер посылает пары значений name = «имя» в специальном формате, который называют закодированным в URL формате. Каждая CGI программа перед тем, как использовать закодированную в URL информацию должна ее преобразовать. Интерфейс WINDOWS CGI осуществляет это автоматически.
  4. Для того, что бы иметь возможность запустить любую CGI программу необходимо поместить ее в соответствующем каталоге для выполняемых файлов.


Существуют 3 CGI интерфейса.


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

Standart CGI – обеспечивает поддержку тридцатидвухразрядных программ, которые используют средства стандартного ввода-вывода и переменной среды. Лучше всего подходят для переноса CGI сценариев, это Web-сервера работающего в сист UNIX.

POS CGI позволяет запускать шестнадцатиразрядные программы в которых используется интерфейс подобный стандарту CGI и применять интерпретатор команд Command.com.


Методы CGI программирования.


1) Возврат html документов.

2) Возврат изображений и содержимого другого типа.

3) Возврат ответа с переадресацией. CGI программа может переадресовать браузер к некоторому существующему документу. Если в заголовке содержится полный URL, то сервер игнорирует всю остальную информацию и генерирует http ответ. Когда браузер получит такой ответ он автоматически обратиться по указанному URL.

4) Возврат сообщений об ошибке. Если во время работы CGI программы возникает ошибка программа должна продолжит работу и вернуть полученное сообщение браузеру.

Особенности сообщений об ошибках:

1) второй заголовок является заголовком определенного пользователя, в нем указывается реальный путь к CGI программе при выполнении которого возникла ошибка;

2) в это сообщение включается так же сообщения генерируемые данными программами окружения или операционной системы, что бы разработчик CGI программы мог лучше понять причину случившегося;

3) в сообщение так же включается ссылка Mail to, что бы пользователь мог сразу поставить в известность администратора, послав ему сообщ по e-mail. Можно так же включить в ссылку на Mail to свой адрес электронной почты для передачи информации данной CGI программы.


Интерфейс Windows CGI.



Когда сервер принимает решение что ему необходимо выполнить CGI программу, то прежде всего по URL поступающего от браузера он определяет что это за программа. Затем сервер собирает всю информацию, касающуюся данного запроса браузера, включая содержимое форм, и упаковывает для CGI программы. Затем переходит к обслуживанию других запросов до тех пор, пока CGI программа не завершит свою работу.

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

Windows CGI организован таким образом, чтобы работать как в 16-ти так и в 32-х разрядной среде Windows, что бы обеспечить возможность 32-х разрядному серверу запускать 16-ти разрядные CGI программы и обмениваться информацией с ними. Интерфейс Windows CGI передает распакованную информацию из формы в CGI программы, чего не делает ни один другой CGI интерфейс.


Процесс обработки информации Windows CGI:

заголовок,

тело содерж формы



сервер

файл ввода

И


пакет запроса

запрос

CGI

прогр


INI файл



заголовок, содерж запроса

ответ





файл вывода


пакет ответа




И – имена файлов ввода-вывода.


Сервер разделяет вопрос на заголовок и содержимое и помещает необработанную информацию во временном файле ввода. Содержимое заголовка помещается в переменные сервера. Значение этих переменных записывается во временный файл INI.

Если пользователь передает данные формы, то сервер распаковывает их и создает именованную переменную для каждого поля форм. Содержимое этих перемен так же заноситься в INI файл. Сервер создает имя временного файла вывода и помещает имена временных файлов ввода-вывода в INI файл.

В INI файле содержится вся информация, которая необходима CGI программе для обработки запросов и упаковки ответов.

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

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

Чтобы генерировать ответ CGI программа создает файл вывода воспользовавшись для этого именем, которое сервер поместил в INI файл. Затем программа записывает данные ответа в файл вывода и закрывает его. После этого CGI программа закрывается, ее задача выполнена.

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

Файл вывода состоит из 2 частей: заголовка и содержания. Заголовки отделяются от содержания с помощью пустой строки.

CGI программа может обработать заголовок одним из двух способов. Наиболее распространенный способ предполагает создание CGI программы минимального набора заголовков. При этом сервер полностью формирует ответ в формате http, включая в него созданный CGI программой заголовок, и посылает полученный ответ браузеру. Другой способ заключается в построении полного ответа в формате http самой CGI программой. В этом случае сервер без изменений передает содержимое файла вывода браузеру. На этом транзакция завершается.